PATH:
var
/
www
/
clients
/
client1
/
web1
/
web
/
wp-content
/
sitepress-multilingual-cms
/
classes
/
menu-elements
<?php use WPML\Element\API\TranslationsRepository; /** * Class WPML_Custom_Columns */ class WPML_Custom_Columns implements IWPML_Action { const COLUMN_KEY = 'icl_translations'; const CUSTOM_COLUMNS_PRIORITY = 1010; /** * @param SitePress $sitepress */ private $sitepress; /** * @var WPML_Post_Status_Display */ public $post_status_display; public function __construct( SitePress $sitepress ) { $this->sitepress = $sitepress; } /** * @param array $columns * * @return array */ public function add_posts_management_column( $columns ) { $new_columns = $columns; if ( 'trash' === get_query_var( 'post_status' ) ) { return $columns; } $flags_column = $this->get_flags_column(); if ( $flags_column ) { $new_columns = []; foreach ( $columns as $column_key => $column_content ) { $new_columns[ $column_key ] = $column_content; if ( ( 'title' === $column_key || 'name' === $column_key ) && ! isset( $new_columns[ self::COLUMN_KEY ] ) ) { $new_columns[ self::COLUMN_KEY ] = $flags_column; } } } return $new_columns; } public function get_flags_column() { $active_languages = $this->get_filtered_active_languages(); if ( count( $active_languages ) <= 1 ) { return ''; } $current_language = $this->sitepress->get_current_language(); unset( $active_languages[ $current_language ] ); if ( ! count( $active_languages ) ) { return ''; } $flags_column = '<span class="screen-reader-text">' . esc_html__( 'Languages', 'sitepress' ) . '</span>'; foreach ( $active_languages as $language_data ) { $flags_column .= $this->get_flag_img( $language_data ); } return $flags_column; } private function get_flag_img( $language_data ) { $url = $this->sitepress->get_flag_url( $language_data['code'] ); if ( $url !== '' ) { return '<img src="' . esc_url( $url ) . '" width="18" height="12" alt="' . esc_attr( $language_data['display_name'] ) . '" title="' . esc_attr( $language_data['display_name'] ) . '" style="margin:2px" />'; } else { return $language_data['code']; } } /** * Add posts management column. * * @param string $column_name * @param int|null $post_id */ public function add_content_for_posts_management_column( $column_name, $post_id = null ) { global $post; if ( ! $post_id ) { $post_id = $post->ID; } if ( self::COLUMN_KEY !== $column_name ) { return; } $active_languages = $this->get_filtered_active_languages(); if ( null === $this->post_status_display ) { $this->post_status_display = new WPML_Post_Status_Display( $active_languages ); } unset( $active_languages[ $this->sitepress->get_current_language() ] ); foreach ( $active_languages as $language_data ) { $icon_html = $this->post_status_display->get_status_html( $post_id, $language_data['code'] ); echo $icon_html; } } /** * Check translation management column screen option. * * @param string $post_type Current post type. * * @return bool */ public function show_management_column_content( $post_type ) { $user = get_current_user_id(); $hidden_columns = get_user_meta( $user, 'manageedit-' . $post_type . 'columnshidden', true ); if ( '' === $hidden_columns ) { $is_visible = (bool) apply_filters( 'wpml_hide_management_column', true, $post_type ); if ( false === $is_visible ) { update_user_meta( $user, 'manageedit-' . $post_type . 'columnshidden', array( self::COLUMN_KEY ) ); } return $is_visible; } return ! is_array( $hidden_columns ) || ! in_array( self::COLUMN_KEY, $hidden_columns, true ); } /** * Get list of active languages. * * @return array */ private function get_filtered_active_languages() { $active_languages = $this->sitepress->get_active_languages(); return apply_filters( 'wpml_active_languages_access', $active_languages, array( 'action' => 'edit' ) ); } public function add_hooks() { add_action( 'admin_init', array( $this, 'add_custom_columns_hooks', ), self::CUSTOM_COLUMNS_PRIORITY ); // accommodate Types init@999 } /** * Add custom columns hooks. */ public function add_custom_columns_hooks() { $post_type = isset( $_REQUEST['post_type'] ) ? $_REQUEST['post_type'] : 'post'; if ( $post_type && $this->has_custom_columns() && array_key_exists( $post_type, $this->sitepress->get_translatable_documents() ) ) { add_filter( 'manage_' . $post_type . '_posts_columns', array( $this, 'add_posts_management_column', ) ); $show_management_column_content = $this->show_management_column_content( $post_type ); if ( $show_management_column_content ) { if ( is_post_type_hierarchical( $post_type ) ) { add_action( 'manage_pages_custom_column', array( $this, 'add_content_for_posts_management_column', ) ); } add_action( 'manage_posts_custom_column', array( $this, 'add_content_for_posts_management_column', ) ); add_action( 'manage_posts_custom_column', [ $this, 'preloadTranslationData' ], 1, 0 ); add_action( 'manage_pages_custom_column', [ $this, 'preloadTranslationData' ], 1, 0 ); } } } public function preloadTranslationData() { static $loaded = false; if ( $loaded ) { return; } global $wp_query; $posts = $wp_query->posts; if ( is_array( $posts ) ) { TranslationsRepository::preloadForPosts( $posts ); $loaded = true; } } /** * Check if we need to add custom columns on page. * * @return bool */ private function has_custom_columns() { global $pagenow; if ( 'edit.php' === $pagenow || 'edit-pages.php' === $pagenow || ( 'admin-ajax.php' === $pagenow && ( ( array_key_exists( 'action', $_POST ) && 'inline-save' === filter_var( $_POST['action'] ) ) || ( array_key_exists( 'action', $_GET ) && 'fetch-list' === filter_var( $_GET['action'] ) ) ) ) ) { return true; } return false; } }
[-] class-wpml-lang-domains-box.php
[edit]
[-] class-wpml-tm-post-edit-link-anchor.php
[edit]
[-] PostTypesUI.php
[edit]
[-] class-wpml-tm-post-link-anchor.php
[edit]
[-] class-wpml-taxonomy-translation-screen-data.php
[edit]
[+]
post-edit-screen
[-] class-wpml-tm-post-view-link-title.php
[edit]
[-] class-wpml-custom-types-translation-ui.php
[edit]
[-] class-wpml-tm-post-link.php
[edit]
[-] class-wpml-inactive-content-render.php
[edit]
[-] class-wpml-support-page.php
[edit]
[-] class-wpml-tm-post-edit-custom-field-settings-menu.php
[edit]
[-] class-wpml-user-options-menu.php
[edit]
[-] class-wpml-admin-scripts-setup.php
[edit]
[-] class-wpml-tm-post-view-link-anchor.php
[edit]
[-] class-wpml-tm-post-link-factory.php
[edit]
[-] class-wpml-custom-columns-factory.php
[edit]
[+]
..
[-] class-wpml-translation-tree.php
[edit]
[-] class-wpml-taxonomy-translation-ui.php
[edit]
[-] PostLinkUrl.php
[edit]
[-] class-wpml-custom-columns.php
[edit]
[-] class-wpml-taxonomy-translation.php
[edit]