PluginProbe
Polylang / 2.0.12
Polylang v2.0.12
3.8.9 3.8.8 3.8.7 3.8.6 3.8.5 3.8.4 3.8.3 2.7 2.7.0.1 2.7.1 2.7.2 2.7.3 2.7.4 2.8 2.8.1 2.8.2 2.8.3 2.8.4 2.9 2.9.1 2.9.2 3.0 3.0.1 3.0.2 3.0.3 All 233 releases
polylang / admin / admin-filters-post-base.php

admin-filters-post-base.php in Polylang 2.0.12, at admin/admin-filters-post-base.php

70 lines 1.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 /**
4 * some common code for PLL_Admin_Filters_Post and PLL_Admin_Filters_Media
5 *
6 * @since 1.5
7 */
8 abstract class PLL_Admin_Filters_Post_Base {
9 public $links, $model, $pref_lang;
10
11 /**
12 * constructor: setups filters and actions
13 *
14 * @since 1.2
15 *
16 * @param object $polylang
17 */
18 public function __construct( &$polylang ) {
19 $this->links = &$polylang->links;
20 $this->model = &$polylang->model;
21 $this->pref_lang = &$polylang->pref_lang;
22 }
23
24 /**
25 * allows to set a language by default for posts if it has no language yet
26 *
27 * @since 1.5
28 *
29 * @param int $post_id
30 */
31 public function set_default_language( $post_id ) {
32 if ( ! $this->model->post->get_language( $post_id ) ) {
33 if ( isset( $_GET['new_lang'] ) && $lang = $this->model->get_language( $_GET['new_lang'] ) ) {
34 $this->model->post->set_language( $post_id, $lang );
35 }
36
37 elseif ( ( $parent_id = wp_get_post_parent_id( $post_id ) ) && $parent_lang = $this->model->post->get_language( $parent_id ) ) {
38 $this->model->post->set_language( $post_id, $parent_lang );
39 }
40
41 else {
42 $this->model->post->set_language( $post_id, $this->pref_lang );
43 }
44 }
45 }
46
47 /**
48 * save translations from language metabox
49 *
50 * @since 1.5
51 *
52 * @param int $post_id
53 * @param array $arr
54 * @return array
55 */
56 protected function save_translations( $post_id, $arr ) {
57 // security check
58 // as 'wp_insert_post' can be called from outside WP admin
59 check_admin_referer( 'pll_language', '_pll_nonce' );
60
61 // save translations after checking the translated post is in the right language
62 foreach ( $arr as $lang => $tr_id ) {
63 $translations[ $lang ] = ( $tr_id && $this->model->post->get_language( (int) $tr_id )->slug == $lang ) ? (int) $tr_id : 0;
64 }
65
66 $this->model->post->save_translations( $post_id, $translations );
67 return $translations;
68 }
69 }
70