/** * Format a Movie's languages for display * * @since 2.0 * * @param string $data field value * * @return string Formatted output */ public static function format_movie_spoken_languages($data) { if (is_null($data) || '' == $data) { return $data; } $data = explode(',', $data); foreach ($data as $i => $d) { $d = trim($d); if ('1' == wpmoly_o('translate-languages')) { $title = WPMOLY_L10n::get_language_standard_name($d); $title = __($title, 'wpmovielibrary-iso'); } else { $title = $d; } $url = apply_filters('wpmoly_movie_meta_link', array('key' => 'spoken_languages', 'value' => $d, 'type' => 'meta', 'text' => $title, 'title' => sprintf(__('More movies in %s', 'wpmovielibrary'), $title))); $data[$i] = $url; } $data = implode(', ', $data); $output = self::format_movie_field($data); return $output; }
/** * Generate a list of all languages used in movies * * @since 2.0 * * @param boolean $count Shall we add count? * * @return array */ public static function get_used_languages($count = false) { $used_languages = array(); if (true !== $count) { $count = false; } $languages = self::get_used_meta('spoken_languages', $count); foreach ($languages as $i => $language) { $_language = WPMOLY_L10n::get_language_standard_name($language['name']); if ($_language != $language['name']) { if (!$count) { $used_languages[$language['name']] = __($_language, 'wpmovielibrary-iso'); } else { $used_languages[$language['name']] = sprintf('%s (%s)', __($_language, 'wpmovielibrary-iso'), sprintf(_n('%d movie', '%d movies', $language['count'], 'wpmovielibrary'), $language['count'])); } } } $used_languages = array_unique($used_languages); return $used_languages; }
/** * Filter page's title to feature letters, meta, value in archives * pages' titles. Hooked to 'the_title' and 'wp_title' filters. * * @since 2.1.1 * * @param string $title Current title * @param int|string $id Current page ID if current filter if 'the_title', separator if filter is 'wp_title' * * @return string */ public function movie_archives_title($title, $id = null) { // Exclude admin if (is_admin()) { return $title; } // 'wp_title' filter second parameter is separator, not id $filter = current_filter(); $sep = ' | '; if ('wp_title' == $filter) { $id = get_the_ID(); } // Exclude not-archive pages if (!in_array($id, $this->pages)) { return $title; } $is_movie = $id == $this->pages['movie']; $translate = '1' == wpmoly_o('rewrite-enable'); $rewrite_movie = '1' == wpmoly_o('movie-archives-title-rewrite'); $rewrite_taxonomy = '1' == wpmoly_o('tax-archives-title-rewrite'); if ($is_movie && !$rewrite_movie || !$is_movie && !$rewrite_taxonomy) { return $title; } $page = array_search($id, $this->pages); $titles = array('movie' => __('Movies', 'wpmovielibrary'), 'collection' => __('Collections', 'wpmovielibrary'), 'genre' => __('Genres', 'wpmovielibrary'), 'actor' => __('Actors', 'wpmovielibrary')); /** * Filter Archive Pages Titles * * @since 2.1.1 * * @param array $titles Default Archive Pages titles * * @return array Filtered titles */ $titles = apply_filters('wpmoly_filter_archive_pages_titles', $titles); /** * Filter Archive Page's default title * * @since 2.1.1 * * @param string $title Current Archive Page title * @param int $id Current Archive Page Post ID * * @return string Filtered title */ $title = apply_filters("wpmoly_filter_{$page}_archive_page_default_title", $titles[$page], $id); if (!is_single($id) && !is_page($id) || 'the_title' == $filter && !in_the_loop()) { return $title; } $meta = get_query_var('meta'); $detail = get_query_var('detail'); $value = get_query_var('value'); $sorting = get_query_var('sorting'); $_detail = ''; $_meta = ''; if ($is_movie && $rewrite_movie) { if ('' != $meta) { if ($translate) { $meta = WPMOLY_L10n::untranslate_rewrite($meta); } $supported = WPMOLY_Settings::get_supported_movie_meta(); if (isset($supported[$meta])) { $_meta = $supported[$meta]['title']; } if ('' != $value) { $value = WPMOLY_L10n::untranslate_rewrite($value); } } elseif ('' != $detail) { if ($translate) { $detail = WPMOLY_L10n::untranslate_rewrite($detail); } $supported = WPMOLY_Settings::get_supported_movie_detail(); if (isset($supported[$detail])) { $_detail = $supported[$detail]['title']; } if ('' != $value) { $value = WPMOLY_L10n::untranslate_rewrite($value); } } if ('production_countries' == $meta) { $value = WPMOLY_L10n::get_country_standard_name($value); $value = __($value, 'wpmovielibrary-iso'); } else { if ('spoken_languages' == $meta) { $value = WPMOLY_L10n::get_language_standard_name($value); $value = __($value, 'wpmovielibrary-iso'); } else { $value = __($value, 'wpmovielibrary'); } } if ('' == $_meta && '' != $_detail) { $_meta = $_detail; } if ('' != $_meta && '' == $value) { $title = sprintf(__('Movies by %s', 'wpmovielibrary'), $_meta); } elseif ('' != $_meta && '' != $value) { $title = sprintf(__('Movies by %s: %s', 'wpmovielibrary'), ucwords($_meta), $value); } else { $title = __('Movies', 'wpmovielibrary'); } } if ('' != $sorting) { $sorting = self::parse_query_vars(compact('sorting')); if (isset($sorting['letter']) && '' != $sorting['letter']) { $title .= sprintf(' − %s ', sprintf(__('Letter %s', 'wpmovielibrary'), $sorting['letter'])); } if (isset($sorting['paged']) && '' != $sorting['paged'] && 'wp_title' == $filter) { $title .= sprintf(__(' %s Page %d ', 'wpmovielibrary'), $sep, $sorting['paged']); } } /** * Filter Page's Post title as used in (get_)the_title() * * @since 2.1.1 * * @param string $title Current Archive Page title * @param int $id Current Archive Page Post ID * * @return string Filtered title */ $title = apply_filters("wpmoly_filter_{$page}_archive_page_title", $title, $id); if ('wp_title' == $filter) { $title = str_replace(array(' : ', ' − '), $sep, $title) . $sep; /** * Filter Page's main title as used in wp_title() * * @since 2.1.1 * * @param string $title Current Archive Page title * @param int $id Current Archive Page Post ID * * @return string Filtered title */ $title = apply_filters("wpmoly_filter_{$page}_archive_page_wp_title", $title, $id); } return $title; }