PluginProbe
Polylang / 2.8
Polylang v2.8
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 | frontend/frontend.php +33 -71 3.02.8 View file →
@@ -3,68 +3,39 @@
3 3 * @package Polylang
4 4 */
5 5
6 6 /**
7 - * Main Polylang class when on frontend, accessible from @see PLL().
7 + * Frontend controller
8 + * accessible as $polylang global object
8 9 *
10 + * Properties:
11 + * options => inherited, reference to Polylang options array
12 + * model => inherited, reference to PLL_Model object
13 + * links_model => inherited, reference to PLL_Links_Model object
14 + * links => reference to PLL_Links object
15 + * static_pages => reference to PLL_Frontend_Static_Pages object
16 + * choose_lang => reference to PLL_Choose_Lang object
17 + * curlang => current language
18 + * filters => reference to PLL_Frontend_Filters object
19 + * filters_links => reference to PLL_Frontend_Filters_Links object
20 + * filters_search => reference to PLL_Frontend_Filters_Search object
21 + * posts => reference to PLL_CRUD_Posts object
22 + * terms => reference to PLL_CRUD_Terms object
23 + * nav_menu => reference to PLL_Frontend_Nav_Menu object
24 + * auto_translate => optional, reference to PLL_Auto_Translate object
25 + *
9 26 * @since 1.2
10 27 */
11 28 class PLL_Frontend extends PLL_Base {
12 - /**
13 - * Current language.
14 - *
15 - * @var PLL_Language
16 - */
17 29 public $curlang;
30 + public $links, $choose_lang, $filters, $filters_search, $nav_menu, $auto_translate;
18 31
19 32 /**
20 - * @var PLL_Frontend_Auto_Translate
21 - */
22 - public $auto_translate;
23 -
24 - /**
25 - * The class selecting the current language.
33 + * Constructor
26 34 *
27 - * @var PLL_Choose_Lang
28 - */
29 - public $choose_lang;
30 -
31 - /**
32 - * @var PLL_Frontend_Filters
33 - */
34 - public $filters;
35 -
36 - /**
37 - * @var PLL_Frontend_Filters_Links
38 - */
39 - public $filters_links;
40 -
41 - /**
42 - * @var PLL_Frontend_Filters_Search
43 - */
44 - public $filters_search;
45 -
46 - /**
47 - * @var PLL_Frontend_Links
48 - */
49 - public $links;
50 -
51 - /**
52 - * @var PLL_Frontend_Nav_Menu
53 - */
54 - public $nav_menu;
55 -
56 - /**
57 - * @var PLL_Frontend_Static_Pages
58 - */
59 - public $static_pages;
60 -
61 - /**
62 - * Constructor.
63 - *
64 35 * @since 1.2
65 36 *
66 - * @param PLL_Links_Model $links_model Reference to the links model.
37 + * @param object $links_model
67 38 */
68 39 public function __construct( &$links_model ) {
69 40 parent::__construct( $links_model );
70 41
@@ -110,10 +81,8 @@
110 81 /**
111 82 * Setups filters and nav menus once the language has been defined
112 83 *
113 84 * @since 1.2
114 - *
115 - * @return void
116 85 */
117 86 public function pll_language_defined() {
118 87 // Filters
119 88 $this->filters_links = new PLL_Frontend_Filters_Links( $this );
@@ -126,14 +95,13 @@
126 95 }
127 96 }
128 97
129 98 /**
130 - * When querying multiple taxonomies, makes sure that the language is not the queried object.
99 + * When querying multiple taxonomies, makes sure that the language is not the queried object
131 100 *
132 101 * @since 1.8
133 102 *
134 - * @param WP_Query $query WP_Query object.
135 - * @return void
103 + * @param object $query WP_Query object
136 104 */
137 105 public function parse_tax_query( $query ) {
138 106 $pll_query = new PLL_Query( $query, $this->model );
139 107 $queried_taxonomies = $pll_query->get_queried_taxonomies();
@@ -143,14 +111,13 @@
143 111 }
144 112 }
145 113
146 114 /**
147 - * Modifies some query vars to "hide" that the language is a taxonomy and avoid conflicts.
115 + * Modifies some query vars to "hide" that the language is a taxonomy and avoid conflicts
148 116 *
149 117 * @since 1.2
150 118 *
151 - * @param WP_Query $query WP_Query object.
152 - * @return void
119 + * @param object $query WP_Query object
153 120 */
154 121 public function parse_query( $query ) {
155 122 $qv = $query->query_vars;
156 123 $pll_query = new PLL_Query( $query, $this->model );
@@ -189,10 +156,8 @@
189 156 /**
190 157 * Auto translate posts and terms ids
191 158 *
192 159 * @since 1.2
193 - *
194 - * @return void
195 160 */
196 161 public function auto_translate() {
197 162 $this->auto_translate = new PLL_Frontend_Auto_Translate( $this );
198 163 }
@@ -197,25 +162,22 @@
197 162 $this->auto_translate = new PLL_Frontend_Auto_Translate( $this );
198 163 }
199 164
200 165 /**
201 - * Resets some variables when the blog is switched.
202 - * Overrides the parent method.
166 + * Resets some variables when switching blog
167 + * Overrides parent method
203 168 *
204 169 * @since 1.5.1
205 170 *
206 - * @param int $new_blog_id New blog ID.
207 - * @param int $prev_blog_id Previous blog ID.
208 - * @return void
171 + * @param int $new_blog
172 + * @param int $old_blog
209 173 */
210 - public function switch_blog( $new_blog_id, $prev_blog_id ) {
211 - parent::switch_blog( $new_blog_id, $prev_blog_id );
212 -
213 - // Need to check that some languages are defined when user is logged in, has several blogs, some without any languages.
214 - if ( $this->is_active_on_new_blog( $new_blog_id, $prev_blog_id ) && did_action( 'pll_language_defined' ) && $this->model->get_languages_list() ) {
174 + public function switch_blog( $new_blog, $old_blog ) {
175 + // Need to check that some languages are defined when user is logged in, has several blogs, some without any languages
176 + if ( parent::switch_blog( $new_blog, $old_blog ) && did_action( 'pll_language_defined' ) && $this->model->get_languages_list() ) {
215 177 static $restore_curlang;
216 178 if ( empty( $restore_curlang ) ) {
217 - $restore_curlang = $this->curlang->slug; // To always remember the current language through blogs.
179 + $restore_curlang = $this->curlang->slug; // To always remember the current language through blogs
218 180 }
219 181
220 182 $lang = $this->model->get_language( $restore_curlang );
221 183 $this->curlang = $lang ? $lang : $this->model->get_language( $this->options['default_lang'] );