/** * Render Allocine styled Headbox 'Details' Tab. * * @since 2.1.4 * * @return string Headbox Tab HTML content */ private function render_details_tab() { $id = get_the_ID(); $overview = self::get_movie_meta($id, 'overview'); $tagline = self::get_movie_meta($id, 'tagline'); $details = wpmoly_get_movie_details(); $default_fields = WPMOLY_Settings::get_supported_movie_details(); foreach ($details as $slug => $detail) { if (!is_array($detail)) { $detail = array($detail); } if (isset($default_fields[$slug]['panel']) && 'custom' == $default_fields[$slug]['panel']) { unset($details[$slug]); } else { foreach ($detail as $i => $d) { if (!empty($d)) { if (isset($default_fields[$slug]['options'])) { $value = $default_fields[$slug]['options'][$d]; } else { $value = $d; } if ('rating' == $slug) { $d = apply_filters("wpmoly_movie_meta_link", array('key' => 'rating', 'value' => array_search($value, $default_fields[$slug]['options']), 'type' => 'detail', 'text' => $value)); } else { $d = apply_filters("wpmoly_movie_meta_link", array('key' => $slug, 'value' => $value, 'meta' => 'detail', 'text' => $value)); } $detail[$i] = apply_filters("wpmoly_format_movie_field", $d); } } $detail = implode(', ', $detail); if (empty($detail)) { $detail = apply_filters("wpmoly_format_movie_field", ''); } $title = ''; if (isset($default_fields[$slug])) { $title = __($default_fields[$slug]['title'], 'wpmovielibrary'); } $details[$slug] = array('slug' => $slug, 'title' => $title, 'value' => $detail); } } $metas = wpmoly_get_movie_meta(); $metas = wpmoly_filter_undimension_array($metas); $default_fields = WPMOLY_Settings::get_supported_movie_meta(); if (!empty($metas)) { unset($metas['title'], $metas['cast'], $metas['overview'], $metas['tagline']); foreach ($metas as $slug => $field) { if (isset($default_fields[$slug])) { // Custom filter if available if (has_filter("wpmoly_format_movie_{$slug}")) { $field = apply_filters("wpmoly_format_movie_{$slug}", $field); } // Filter empty field $field = apply_filters("wpmoly_format_movie_field", $field); $metas[$slug] = array('slug' => $slug, 'title' => __($default_fields[$slug]['title'], 'wpmovielibrary'), 'value' => $field); } else { unset($metas[$slug]); } } } $attributes = compact('id', 'overview', 'tagline', 'details', 'metas'); $content = self::render_template('movies/headbox-allocine/tabs/details.php', $attributes, $require = 'always'); return $content; }
/** * Modern headbox details tab content callback. * * @since 2.0 * * @return string Tab content HTML markup */ public function get_wpmoly_headbox_details_tab() { // TODO: better filtering/formatting $details = wpmoly_get_movie_details(); $fields = wpmoly_o('sort-details'); $default_fields = WPMOLY_Settings::get_supported_movie_details(); if (empty($fields) || !isset($fields['used'])) { return null; } $fields = $fields['used']; if (isset($fields['placebo'])) { unset($fields['placebo']); } $post_id = get_the_ID(); $items = array(); foreach ($fields as $slug => $field) { if (isset($details[$slug])) { $detail = $details[$slug]; if (!is_array($detail)) { $detail = array($detail); } foreach ($detail as $i => $d) { if ('' != $d) { if (isset($default_fields[$slug]['options'])) { $value = $default_fields[$slug]['options'][$d]; } else { $value = $d; } if ('rating' == $slug) { $d = apply_filters("wpmoly_movie_meta_link", array('key' => 'rating', 'value' => array_search($value, $default_fields[$slug]['options']), 'type' => 'detail', 'text' => $value)); } else { $d = apply_filters("wpmoly_movie_meta_link", array('key' => $slug, 'value' => $value, 'meta' => 'detail', 'text' => $value)); } } $detail[$i] = apply_filters("wpmoly_format_movie_field", $d); } if (empty($detail)) { $detail[] = apply_filters("wpmoly_format_movie_field", ''); } $title = ''; if (isset($default_fields[$slug])) { $title = __($default_fields[$slug]['title'], 'wpmovielibrary'); } $items[] = array('slug' => $slug, 'title' => $title, 'value' => $detail); } } $attributes = array('details' => $items); $content = WPMovieLibrary::render_template('movies/headbox/tabs/details.php', $attributes, $require = 'always'); return $content; }