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
← All changes | admin/admin-filters-post-base.php +30 -8 2.7.32.0.12 View file →
@@ -1,8 +1,8 @@
1 1 <?php
2 2
3 3 /**
4 - * Some common code for PLL_Admin_Filters_Post and PLL_Admin_Filters_Media
4 + * some common code for PLL_Admin_Filters_Post and PLL_Admin_Filters_Media
5 5 *
6 6 * @since 1.5
7 7 */
8 8 abstract class PLL_Admin_Filters_Post_Base {
@@ -8,9 +8,9 @@
8 8 abstract class PLL_Admin_Filters_Post_Base {
9 9 public $links, $model, $pref_lang;
10 10
11 11 /**
12 - * Constructor: setups filters and actions
12 + * constructor: setups filters and actions
13 13 *
14 14 * @since 1.2
15 15 *
16 16 * @param object $polylang
@@ -21,23 +21,45 @@
21 21 $this->pref_lang = &$polylang->pref_lang;
22 22 }
23 23
24 24 /**
25 - * Save translations from language metabox
25 + * allows to set a language by default for posts if it has no language yet
26 26 *
27 27 * @since 1.5
28 28 *
29 - * @param int $post_id
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
30 53 * @param array $arr
31 54 * @return array
32 55 */
33 56 protected function save_translations( $post_id, $arr ) {
34 - // Security check as 'wp_insert_post' can be called from outside WP admin
57 + // security check
58 + // as 'wp_insert_post' can be called from outside WP admin
35 59 check_admin_referer( 'pll_language', '_pll_nonce' );
36 60
37 - $translations = array();
38 -
39 - // Save translations after checking the translated post is in the right language
61 + // save translations after checking the translated post is in the right language
40 62 foreach ( $arr as $lang => $tr_id ) {
41 63 $translations[ $lang ] = ( $tr_id && $this->model->post->get_language( (int) $tr_id )->slug == $lang ) ? (int) $tr_id : 0;
42 64 }
43 65