PluginProbe
Post Grid Gutenberg Blocks – PostX / 5.0.41
Post Grid Gutenberg Blocks – PostX v5.0.41
5.0.41 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 All 238 releases
ultimate-post / addons / builder / blocks / Post_Reading_Time.php

Post_Reading_Time.php in Post Grid Gutenberg Blocks – PostX 5.0.41, at addons/builder/blocks/Post_Reading_Time.php

84 lines 2.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace ULTP\blocks;
3
4 defined( 'ABSPATH' ) || exit;
5
6 class Post_Reading_Time {
7 public function __construct() {
8 add_action( 'init', array( $this, 'register' ) );
9 }
10 public function get_attributes() {
11
12 return array(
13 'blockId' => '',
14
15 /*
16 ============================
17 Post Reading Meta Settings
18 ============================*/
19 'readLabel' => true,
20 'readIconShow' => true,
21 'readLabelText' => 'Reading Time',
22
23 /*
24 ============================
25 Post Reading Icon Settings
26 ============================*/
27 'readIconStyle' => 'readingTime1',
28
29 /*
30 ============================
31 Advanced Settings
32 ============================*/
33 'advanceId' => '',
34 'advanceZindex' => '',
35 'hideExtraLarge' => false,
36 'hideDesktop' => false,
37 'hideTablet' => false,
38 'hideMobile' => false,
39 'advanceCss' => '',
40 );
41 }
42
43 public function register() {
44 register_block_type(
45 'ultimate-post/post-reading-time',
46 array(
47 'editor_script' => 'ultp-blocks-editor-script',
48 'editor_style' => 'ultp-blocks-editor-css',
49 'render_callback' => array( $this, 'content' ),
50 )
51 );
52 }
53
54 public function content( $attr, $noAjax ) {
55 $attr = wp_parse_args( $attr, $this->get_attributes() );
56 $block_name = 'post-reading-time';
57 $wrapper_before = $wrapper_after = $content = '';
58
59 $attr['className'] = isset( $attr['className'] ) && $attr['className'] ? preg_replace( '/[^A-Za-z0-9_ -]/', '', $attr['className'] ) : '';
60 $attr['align'] = isset( $attr['align'] ) && $attr['align'] ? preg_replace( '/[^A-Za-z0-9_ -]/', '', $attr['align'] ) : '';
61 $attr['advanceId'] = isset( $attr['advanceId'] ) ? sanitize_html_class( $attr['advanceId'] ) : '';
62 $attr['blockId'] = isset( $attr['blockId'] ) ? sanitize_html_class( $attr['blockId'] ) : '';
63 $attr['readLabelText'] = wp_kses( $attr['readLabelText'], ultimate_post()->ultp_allowed_html_tags() );
64
65 $wrapper_before .= '<div ' . ( $attr['advanceId'] ? 'id="' . $attr['advanceId'] . '" ' : '' ) . ' class="wp-block-ultimate-post-' . $block_name . ' ultp-block-' . $attr['blockId'] . ( $attr['className'] ? ' ' . $attr['className'] : '' ) . '' . ( $attr['align'] ? ' align' . $attr['align'] : '' ) . '">';
66 $wrapper_before .= '<div class="ultp-block-wrapper">';
67 $content .= '<span class="ultp-read-count">';
68 if ( $attr['readIconShow'] && ( $attr['readIconStyle'] != '' ) ) {
69 $content .= ultimate_post()->get_svg_icon( $attr['readIconStyle'] );
70 }
71 $content .= '<div>';
72 $content .= ceil( mb_strlen( wp_strip_all_tags( get_the_content( null, false, get_the_ID() ) ) ) / 1200 );
73 $content .= '</div>';
74 if ( $attr['readLabel'] ) {
75 $content .= '<span class="ultp-read-label">' . $attr['readLabelText'] . '</span>';
76 }
77 $content .= '</span>';
78 $wrapper_after .= '</div>';
79 $wrapper_after .= '</div>';
80
81 return $wrapper_before . $content . $wrapper_after;
82 }
83 }
84