PluginProbe
Post Grid Gutenberg Blocks – PostX / 1.1.4
Post Grid Gutenberg Blocks – PostX v1.1.4
5.0.39 5.0.38 5.0.37 5.0.36 5.0.35 5.0.34 5.0.33 5.0.32 5.0.31 5.0.30 5.0.29 5.0.28 5.0.27 5.0.26 5.0.25 5.0.23 5.0.24 5.0.22 5.0.21 5.0.20 5.0.19 5.0.18 5.0.17 2.1.1 2.1.2 All 237 releases
ultimate-post / classes / Initialization.php

Initialization.php in Post Grid Gutenberg Blocks – PostX 1.1.4, at classes/Initialization.php

264 lines 11.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace ULTP;
3
4 defined('ABSPATH') || exit;
5
6 class Initialization{
7
8 private $all_blocks;
9 private $api_endpoint = 'https://demo.wpxpo.com/wp-json/restapi/v2/';
10
11 public function __construct(){
12 $this->requires();
13 $this->blocks();
14
15 add_action('wp_head', array($this, 'popular_posts_tracker_callback'));
16 add_filter('block_categories', array($this, 'register_category_callback'), 10, 2); // Block Category Register
17 add_action('after_setup_theme', array($this, 'add_image_size'));
18
19 add_action('enqueue_block_editor_assets', array($this, 'register_scripts_back_callback')); // Only editor
20 add_action('admin_enqueue_scripts', array($this, 'register_scripts_option_panel_callback')); // Option Panel
21 add_action('wp_enqueue_scripts', array($this, 'register_scripts_front_callback')); // Both frontend
22
23 add_action('wp_ajax_ultp_next_prev', array($this, 'ultp_next_prev_callback')); // Next Previous AJAX Call
24 add_action('wp_ajax_nopriv_ultp_next_prev', array($this, 'ultp_next_prev_callback')); // Next Previous AJAX Call Logout User
25 add_action('wp_ajax_ultp_filter', array($this, 'ultp_filter_callback')); // Next Previous AJAX Call
26 add_action('wp_ajax_nopriv_ultp_filter', array($this, 'ultp_filter_callback')); // Next Previous AJAX Call Logout User
27 add_action('wp_ajax_ultp_pagination', array($this, 'ultp_pagination_callback')); // Page Number AJAX Call
28 add_action('wp_ajax_nopriv_ultp_pagination',array($this, 'ultp_pagination_callback')); // Page Number AJAX Call Logout User
29
30 register_activation_hook(ULTP_PATH.'ultimate-post.php', array($this, 'install_hook'));
31
32 add_action( 'activated_plugin', array($this, 'activation_redirect'));
33 }
34
35 public function register_scripts_option_panel_callback(){
36 if( null !== ( $screen = get_current_screen() ) && 'toplevel_page_ultp-settings' !== $screen->id ) {
37 return;
38 }
39 wp_enqueue_style('wp-color-picker');
40 wp_enqueue_script('wp-color-picker');
41 wp_enqueue_script('ultp-option-script', ULTP_URL.'assets/js/ultp-option.js', array('jquery'), ULTP_VER, true);
42 }
43
44 public function register_scripts_common(){
45 wp_enqueue_style('dashicons');
46 wp_enqueue_style('ultp-slick-style', ULTP_URL.'assets/css/slick.css', array(), ULTP_VER);
47 wp_enqueue_style('ultp-slick-theme-style', ULTP_URL.'assets/css/slick-theme.css', array(), ULTP_VER);
48 wp_enqueue_style('ultp-style', ULTP_URL.'assets/css/blocks.style.css', array(), ULTP_VER );
49 if(is_rtl()){ wp_enqueue_style('ultp-blocks-rtl-css', ULTP_URL.'assets/css/rtl.css', array(), ULTP_VER); }
50 wp_enqueue_script('ultp-flexmenu-script', ULTP_URL.'assets/js/flexmenu.js', array('jquery'), ULTP_VER, true);
51 wp_enqueue_script('ultp-slick-script', ULTP_URL.'assets/js/slick.min.js', array('jquery'), ULTP_VER, true);
52 wp_enqueue_script('ultp-script', ULTP_URL.'assets/js/ultp.js', array('jquery','ultp-flexmenu-script'), ULTP_VER, true);
53 wp_localize_script('ultp-script', 'ultp_data', array(
54 'url' => ULTP_URL,
55 'ajax' => admin_url('admin-ajax.php'),
56 'security' => wp_create_nonce('ultp-nonce')
57 ));
58 }
59
60 // Backend and Frontend Load script
61 public function register_scripts_front_callback() {
62 if ('yes' == get_post_meta(get_the_ID(), '_ultp_active', true)) {
63 $this->register_scripts_common();
64 }
65 }
66
67 // Only Backend
68 public function register_scripts_back_callback() {
69 $this->register_scripts_common();
70 wp_enqueue_script('ultp-blocks-editor-script', ULTP_URL.'assets/js/editor.blocks.js', array('wp-i18n', 'wp-element', 'wp-blocks', 'wp-components', 'wp-editor' ), ULTP_VER, true);
71 wp_enqueue_style('ultp-blocks-editor-css', ULTP_URL.'assets/css/blocks.editor.css', array(), ULTP_VER);
72 if(is_rtl()){ wp_enqueue_style('ultp-blocks-editor-rtl-css', ULTP_URL.'assets/css/rtl.css', array(), ULTP_VER); }
73 wp_localize_script('ultp-blocks-editor-script', 'ultp_data', array(
74 'url' => ULTP_URL,
75 'ajax' => admin_url('admin-ajax.php'),
76 'security' => wp_create_nonce('ultp-nonce')
77 ));
78 }
79
80 // Fire When Plugin First Install
81 public function install_hook() {
82 if (!get_option('ultp_options')) {
83 $option_data = array(
84 'css_save_as' => 'wp_head',
85 'preloader_style' => 'style1',
86 'preloader_color' => '#1740f5',
87 'container_width' => '1140'
88 );
89 update_option('ultp_options', $option_data);
90 }
91
92 }
93
94 public function activation_redirect($plugin) {
95 if( $plugin == 'ultimate-post/ultimate-post.php' ) {
96 exit(wp_redirect(admin_url('admin.php?page=ultp-settings')));
97 }
98 }
99
100 public function ultp_pagination_callback() {
101 if (!wp_verify_nonce($_REQUEST['wpnonce'], 'ultp-nonce') && $local) {
102 return ;
103 }
104
105 $paged = sanitize_text_field($_POST['paged']);
106 $blockId = sanitize_text_field($_POST['blockId']);
107 $postId = sanitize_text_field($_POST['postId']);
108 $blockRaw = sanitize_text_field($_POST['blockName']);
109 $blockName = str_replace('_','/', $blockRaw);
110
111 if($paged) {
112 $post = get_post($postId);
113 if (has_blocks($post->post_content)) {
114 $blocks = parse_blocks($post->post_content);
115 $this->block_return($blocks, $paged, $blockId, $blockRaw, $blockName);
116 }
117 }
118 }
119
120 public function block_return($blocks, $paged, $blockId, $blockRaw, $blockName) {
121 foreach ($blocks as $key => $value) {
122 if($blockName == $value['blockName']) {
123 if($value['attrs']['blockId'] == $blockId) {
124 $attr = $this->all_blocks[$blockRaw]->get_attributes(true);
125 $attr['paged'] = $paged;
126 $attr = array_merge($attr, $value['attrs']);
127 echo $this->all_blocks[$blockRaw]->content($attr, true);
128 die();
129 }
130 }
131 if(!empty($value['innerBlocks'])){
132 $this->block_return($value['innerBlocks'], $paged, $blockId, $blockRaw, $blockName);
133 }
134 }
135 }
136
137
138 public function ultp_filter_callback() {
139 if (!wp_verify_nonce($_REQUEST['wpnonce'], 'ultp-nonce') && $local){
140 return ;
141 }
142
143 $taxtype = sanitize_text_field($_POST['taxtype']);
144 $blockId = sanitize_text_field($_POST['blockId']);
145 $postId = sanitize_text_field($_POST['postId']);
146 $taxonomy = sanitize_text_field($_POST['taxonomy']);
147 $blockRaw = sanitize_text_field($_POST['blockName']);
148 $blockName = str_replace('_','/', $blockRaw);
149
150 if( $taxtype ) {
151 $post = get_post($postId);
152 if (has_blocks($post->post_content)) {
153 $blocks = parse_blocks($post->post_content);
154 $this->filter_block_return($blocks, $blockId, $blockRaw, $blockName, $taxtype, $taxonomy);
155 }
156 }
157 }
158
159 public function filter_block_return($blocks, $blockId, $blockRaw, $blockName, $taxtype, $taxonomy) {
160 foreach ($blocks as $key => $value) {
161 if($blockName == $value['blockName']) {
162 if($value['attrs']['blockId'] == $blockId) {
163 $attr = $this->all_blocks[$blockRaw]->get_attributes(true);
164 $attr['queryTax'] = $taxtype == 'category' ? 'category' : 'tag';
165 if($taxtype == 'category' && $taxonomy) {
166 $attr['queryCat'] = json_encode(array($taxonomy));
167 }
168 if($taxtype == 'post_tag' && $taxonomy) {
169 $attr['queryTag'] = json_encode(array($taxonomy));
170 }
171 echo $this->all_blocks[$blockRaw]->content($attr, true);
172 die();
173 }
174 }
175 if(!empty($value['innerBlocks'])){
176 $this->filter_block_return($value['innerBlocks'], $blockId, $blockRaw, $blockName, $taxtype, $taxonomy);
177 }
178 }
179 }
180
181
182 public function ultp_next_prev_callback() {
183 if (!wp_verify_nonce($_REQUEST['wpnonce'], 'ultp-nonce') && $local){
184 return ;
185 }
186
187 $paged = sanitize_text_field($_POST['paged']);
188 $blockId = sanitize_text_field($_POST['blockId']);
189 $postId = sanitize_text_field($_POST['postId']);
190 $blockRaw = sanitize_text_field($_POST['blockName']);
191 $blockName = str_replace('_','/', $blockRaw);
192
193 if( $paged && $blockId && $postId && $blockName ) {
194 $post = get_post($postId);
195 if (has_blocks($post->post_content)) {
196 $blocks = parse_blocks($post->post_content);
197 $this->block_return($blocks, $paged, $blockId, $blockRaw, $blockName);
198 }
199 }
200 }
201
202 // Require Blocks
203 public function blocks() {
204 require_once ULTP_PATH.'blocks/Post_List_1.php';
205 require_once ULTP_PATH.'blocks/Post_List_2.php';
206 require_once ULTP_PATH.'blocks/Post_List_3.php';
207 require_once ULTP_PATH.'blocks/Post_Slider_1.php';
208 require_once ULTP_PATH.'blocks/Post_Grid_1.php';
209 require_once ULTP_PATH.'blocks/Post_Grid_2.php';
210 require_once ULTP_PATH.'blocks/Post_Grid_3.php';
211 require_once ULTP_PATH.'blocks/Post_Grid_4.php';
212 require_once ULTP_PATH.'blocks/Heading.php';
213 require_once ULTP_PATH.'blocks/Image.php';
214 //require_once ULTP_PATH.'blocks/Taxonomy.php';
215 $this->all_blocks['ultimate-post_post-list-1'] = new \ULTP\blocks\Post_List_1();
216 $this->all_blocks['ultimate-post_post-list-2'] = new \ULTP\blocks\Post_List_2();
217 $this->all_blocks['ultimate-post_post-list-3'] = new \ULTP\blocks\Post_List_3();
218 $this->all_blocks['ultimate-post_post-slider-1'] = new \ULTP\blocks\Post_Slider_1();
219 $this->all_blocks['ultimate-post_post-grid-1'] = new \ULTP\blocks\Post_Grid_1();
220 $this->all_blocks['ultimate-post_post-grid-2'] = new \ULTP\blocks\Post_Grid_2();
221 $this->all_blocks['ultimate-post_post-grid-3'] = new \ULTP\blocks\Post_Grid_3();
222 $this->all_blocks['ultimate-post_post-grid-4'] = new \ULTP\blocks\Post_Grid_4();
223 $this->all_blocks['ultimate-post_heading'] = new \ULTP\blocks\Heading();
224 //$this->all_blocks['ultimate-post_taxonomy'] = new \ULTP\blocks\Taxonomy();
225 $this->all_blocks['ultimate-post_image'] = new \ULTP\blocks\Image();
226 }
227
228 // Require Categories
229 public function requires() {
230 require_once ULTP_PATH.'classes/Styles.php';
231 require_once ULTP_PATH.'classes/Options.php';
232 require_once ULTP_PATH.'classes/REST_API.php';
233
234 new \ULTP\Options();
235 new \ULTP\Styles();
236 }
237
238 // Block Categories
239 public function register_category_callback( $categories, $post ) {
240 return array_merge(
241 array(
242 array(
243 'slug' => 'ultimate-post',
244 'title' => __( 'Ultimate Post', 'ultimate-post' )
245 )
246 ), $categories
247 );
248 }
249
250 public function popular_posts_tracker_callback($post_id) {
251 if (!is_single()){ return; }
252 global $post;
253 if (empty($post_id)) { $post_id = $post->ID; }
254 $count = (int)get_post_meta( $post_id, '__post_views_count', true );
255 update_post_meta($post_id, '__post_views_count', $count ? (int)$count + 1 : 1 );
256 }
257
258 public function add_image_size() {
259 add_image_size('ultp_layout_landscape_large', 1200, 800, true);
260 add_image_size('ultp_layout_landscape', 870, 570, true);
261 add_image_size('ultp_layout_portrait', 600, 900, true);
262 add_image_size('ultp_layout_square', 600, 600, true);
263 }
264 }