PATH:
var
/
www
/
clients
/
client1
/
web1
/
web
/
wp-content
/
sitepress-multilingual-cms
/
classes
/
utilities
<?php class WPML_Inactive_Content { /** @var wpdb $wpdb */ private $wpdb; /** @var string $current_language */ private $current_language; /** @var array $content_types */ private $content_types; /** @var array $inactive */ private $inactive; public function __construct( wpdb $wpdb, $current_language ) { $this->wpdb = $wpdb; $this->current_language = $current_language; } /** @return bool */ public function has_entries() { return (bool) $this->get_inactive(); } /** @return array */ public function get_content_types() { foreach ( $this->get_inactive() as $types ) { foreach ( $types as $type => $slugs ) { foreach ( $slugs as $slug => $count ) { $this->content_types[ $type ][ $slug ] = $this->get_label( $type, $slug ); } } } return $this->content_types; } /** @return array */ public function get_languages() { return array_keys( $this->get_inactive() ); } /** @return array */ public function get_language_counts_rows() { $counts = array(); foreach ( $this->get_languages() as $language ) { foreach ( $this->get_content_types() as $type => $slugs ) { foreach ( $slugs as $slug => $label ) { $counts[ $language ][] = $this->count( $language, $type, $slug ); } } } return $counts; } /** * @param string $lang * @param string $type * @param string $slug * * @return int */ private function count( $lang, $type, $slug ) { if ( isset( $this->inactive[ $lang ][ $type ][ $slug ] ) ) { return (int) $this->inactive[ $lang ][ $type ][ $slug ]; } return 0; } /** * @param $langName * * @return string */ public function getLangCode( $langName ) { return \WPML\Element\API\Languages::getCodeByName($langName); } /** @return array */ private function get_inactive() { if ( null === $this->inactive ) { $this->inactive = array(); $post_query = $this->wpdb->prepare( " SELECT COUNT(posts.ID) AS c, posts.post_type, languages_translations.name AS language FROM {$this->wpdb->prefix}icl_translations translations JOIN {$this->wpdb->posts} posts ON translations.element_id = posts.ID AND translations.element_type LIKE %s JOIN {$this->wpdb->prefix}icl_languages languages ON translations.language_code = languages.code AND languages.active = 0 JOIN {$this->wpdb->prefix}icl_languages_translations languages_translations ON languages_translations.language_code = languages.code AND languages_translations.display_language_code = %s GROUP BY posts.post_type, translations.language_code ", array( wpml_like_escape( 'post_' ) . '%', $this->current_language ) ); $post_results = $this->wpdb->get_results( $post_query ); if ( $post_results ) { foreach ( $post_results as $r ) { $this->inactive[ $r->language ]['post'][ $r->post_type ] = $r->c; } } $tax_query = $this->wpdb->prepare( " SELECT COUNT(posts.term_taxonomy_id) AS c, posts.taxonomy, languages_translations.name AS language FROM {$this->wpdb->prefix}icl_translations translations JOIN {$this->wpdb->term_taxonomy} posts ON translations.element_id = posts.term_taxonomy_id JOIN {$this->wpdb->prefix}icl_languages languages ON translations.language_code = languages.code AND languages.active = 0 JOIN {$this->wpdb->prefix}icl_languages_translations languages_translations ON languages_translations.language_code = languages.code AND languages_translations.display_language_code = %s WHERE translations.element_type LIKE %s AND translations.element_type NOT LIKE %s GROUP BY posts.taxonomy, translations.language_code ", [ $this->current_language, wpml_like_escape( 'tax_' ) . '%', '%'. wpml_like_escape('tax_translation_priority') . '%' ] ); $tax_results = $this->wpdb->get_results( $tax_query ); if ( $tax_results ) { foreach ( $tax_results as $r ) { if ( ! $this->is_only_default_category( $r ) ) { $this->inactive[ $r->language ]['taxonomy'][ $r->taxonomy ] = $r->c; } } } } return $this->inactive; } /** * @param stdClass $r * * @return bool */ private function is_only_default_category( $r ) { return $r->taxonomy === 'category' && $r->c == 1; } /** * @param string $type * @param string $slug * * @return null|string */ private function get_label( $type, $slug ) { if ( 'post' === $type ) { $type_object = get_post_type_object( $slug ); } else { $type_object = get_taxonomy( $slug ); } if ( isset( $type_object->label ) ) { return $type_object->label; } return null; } }
[-] class-wpml-wp-cache-factory.php
[edit]
[-] class-wpml-inactive-content.php
[edit]
[-] class-wpml-slash-management.php
[edit]
[-] class-wpml-transient.php
[edit]
[-] class-wpml-ajax.php
[edit]
[-] class-wpml-locale.php
[edit]
[-] class-wpml-string-functions.php
[edit]
[-] class-wpml-deactivate-old-media-factory.php
[edit]
[-] class-wpml-global-ajax.php
[edit]
[+]
admin
[-] AutoAdjustIdsFactory.php
[edit]
[-] wpml-queried-object.php
[edit]
[-] class-wpml-wp-query-api.php
[edit]
[-] class-debug-backtrace.php
[edit]
[-] class-wpml-temporary-switch-admin-language.php
[edit]
[-] class-wpml-flags-factory.php
[edit]
[-] class-wpml-deactivate-old-media.php
[edit]
[-] AutoAdjustIds.php
[edit]
[-] Resources.php
[edit]
[-] class-wpml-encoding.php
[edit]
[-] class-wpml-temporary-switch-language.php
[edit]
[-] class-wpml-flags.php
[edit]
[+]
..
[-] Pager.php
[edit]
[-] class-wpml-wp-post.php
[edit]
[-] class-wpml-cache-factory.php
[edit]
[-] wpml-uuid.php
[edit]
[-] class-wpml-encoding-validation.php
[edit]
[-] wpml-languages-notices.php
[edit]
[-] class-wpml-non-persistent-cache.php
[edit]
[+]
user
[-] class-wpml-wp-cache.php
[edit]
[+]
lock
[-] class-wpml-simple-language-selector.php
[edit]
[-] class-wpml-debug-backtrace.php
[edit]
[-] class-wpml-wp-taxonomy-query.php
[edit]
[-] class-wpml-wp-cache-item.php
[edit]
[-] class-wpml-translate-link-targets.php
[edit]