PluginProbe
UiCore Elements – Free widgets and templates for Elementor / 1.3.18
UiCore Elements – Free widgets and templates for Elementor v1.3.18
1.3.18 1.3.17 1.3.16 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.2.0 1.2.1 1.2.2 1.2.3 All 42 releases
← All changes | includes/widgets/theme-builder/the-content.php +124 -110 1.2.3 → 1.3.18 View file →
@@ -1,5 +1,6 @@
1 1 <?php
2 +
2 3 namespace UiCoreElements\ThemeBuilder\Widgets;
3 4
4 5 use Elementor\Widget_Base;
5 6 use Elementor\Controls_Manager;
@@ -14,137 +15,150 @@
14 15 * Scripts and Styles Class
15 16 */
16 17 class TheContent extends Widget_Base
17 18 {
18 - public function get_name() {
19 - return 'uicore-the-content';
20 - }
19 + public function get_name()
20 + {
21 + return 'uicore-the-content';
22 + }
21 23
22 - public function get_title() {
23 - return esc_html__( 'Post Content', 'uicore-elements' );
24 - }
24 + public function get_title()
25 + {
26 + return esc_html__('Post Content', 'uicore-elements');
27 + }
25 28
26 - public function get_icon() {
27 - return 'eicon-post-content ui-e-widget';
28 - }
29 + public function get_icon()
30 + {
31 + return 'eicon-post-content ui-e-widget';
32 + }
29 33
30 - public function get_categories() {
31 - return [ 'uicore', 'uicore-theme-builder' ];
32 - }
34 + public function get_categories()
35 + {
36 + return ['uicore', 'uicore-theme-builder'];
37 + }
33 38
34 - public function get_keywords() {
35 - return [ 'content', 'post' ];
36 - }
37 - public function has_widget_inner_wrapper(): bool {
38 - // TODO: remove after 3.30, when the full deprecation of widget innet wrapper is ready
39 - return ! \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' );
39 + public function get_keywords()
40 + {
41 + return ['content', 'post'];
40 42 }
43 + public function has_widget_inner_wrapper(): bool
44 + {
45 + // TODO: remove after Optmized Markup experiment is merged to the core
46 + return ! \Elementor\Plugin::$instance->experiments->is_feature_active('e_optimized_markup');
47 + }
41 48
42 - public function show_in_panel() {
43 - return true;
44 - }
49 + public function show_in_panel()
50 + {
51 + return true;
52 + }
45 53
46 - protected function register_controls() {
47 - $this->start_controls_section(
48 - 'section_style',
49 - [
50 - 'label' => esc_html__( 'Style', 'uicore-elements' ),
51 - 'tab' => Controls_Manager::TAB_STYLE,
52 - ]
53 - );
54 + protected function register_controls()
55 + {
56 + $this->start_controls_section(
57 + 'section_style',
58 + [
59 + 'label' => esc_html__('Style', 'uicore-elements'),
60 + 'tab' => Controls_Manager::TAB_STYLE,
61 + ]
62 + );
54 63
55 - $this->add_responsive_control(
56 - 'align',
57 - [
58 - 'label' => esc_html__( 'Alignment', 'uicore-elements' ),
59 - 'type' => Controls_Manager::CHOOSE,
60 - 'options' => [
61 - 'left' => [
62 - 'title' => esc_html__( 'Left', 'uicore-elements' ),
63 - 'icon' => 'eicon-text-align-left',
64 - ],
65 - 'center' => [
66 - 'title' => esc_html__( 'Center', 'uicore-elements' ),
67 - 'icon' => 'eicon-text-align-center',
68 - ],
69 - 'right' => [
70 - 'title' => esc_html__( 'Right', 'uicore-elements' ),
71 - 'icon' => 'eicon-text-align-right',
72 - ],
73 - 'justify' => [
74 - 'title' => esc_html__( 'Justified', 'uicore-elements' ),
75 - 'icon' => 'eicon-text-align-justify',
76 - ],
77 - ],
78 - 'selectors' => [
79 - '{{WRAPPER}}' => 'text-align: {{VALUE}};',
80 - ],
81 - ]
82 - );
64 + $this->add_responsive_control(
65 + 'align',
66 + [
67 + 'label' => esc_html__('Alignment', 'uicore-elements'),
68 + 'type' => Controls_Manager::CHOOSE,
69 + 'options' => [
70 + 'left' => [
71 + 'title' => esc_html__('Left', 'uicore-elements'),
72 + 'icon' => 'eicon-text-align-left',
73 + ],
74 + 'center' => [
75 + 'title' => esc_html__('Center', 'uicore-elements'),
76 + 'icon' => 'eicon-text-align-center',
77 + ],
78 + 'right' => [
79 + 'title' => esc_html__('Right', 'uicore-elements'),
80 + 'icon' => 'eicon-text-align-right',
81 + ],
82 + 'justify' => [
83 + 'title' => esc_html__('Justified', 'uicore-elements'),
84 + 'icon' => 'eicon-text-align-justify',
85 + ],
86 + ],
87 + 'selectors' => [
88 + '{{WRAPPER}}' => 'text-align: {{VALUE}};',
89 + ],
90 + ]
91 + );
83 92
84 - $this->add_control(
85 - 'text_color',
86 - [
87 - 'label' => esc_html__( 'Text Color', 'uicore-elements' ),
88 - 'type' => Controls_Manager::COLOR,
89 - 'default' => '',
90 - 'selectors' => [
91 - '{{WRAPPER}}' => 'color: {{VALUE}};',
92 - ],
93 - 'global' => [
94 - 'default' => Global_Colors::COLOR_TEXT,
95 - ],
96 - ]
97 - );
93 + $this->add_control(
94 + 'text_color',
95 + [
96 + 'label' => esc_html__('Text Color', 'uicore-elements'),
97 + 'type' => Controls_Manager::COLOR,
98 + 'selectors' => [
99 + '{{WRAPPER}}' => 'color: {{VALUE}};',
100 + ],
101 + 'default' => 'var(--e-global-color-uicore_body)',
98 102
99 - $this->add_group_control(
100 - Group_Control_Typography::get_type(),
101 - [
102 - 'name' => 'typography',
103 - 'global' => [
104 - 'default' => Global_Typography::TYPOGRAPHY_TEXT,
105 - ],
106 - ]
107 - );
103 + ]
104 + );
108 105
109 - $this->end_controls_section();
110 - }
106 + $this->add_group_control(
107 + Group_Control_Typography::get_type(),
108 + [
109 + 'name' => 'typography',
110 + 'global' => [
111 + 'default' => Global_Typography::TYPOGRAPHY_TEXT,
112 + ],
113 + ]
114 + );
111 115
112 - protected function render() {
113 - return $this->render_post_content();
114 - }
116 + $this->end_controls_section();
117 + }
115 118
116 - public function render_plain_content() {}
119 + protected function render()
120 + {
121 + return $this->render_post_content();
122 + }
117 123
118 - public function render_post_content( $with_wrapper = false ) {
119 - static $did_posts = [];
120 - $elementor_instance = \Elementor\Plugin::instance();
121 - $post = get_post();
124 + public function render_plain_content() {}
122 125
123 - if ( post_password_required( $post->ID ) ) {
126 + public function render_post_content($with_wrapper = false)
127 + {
128 + static $did_posts = [];
129 + $elementor_instance = \Elementor\Plugin::instance();
130 + $post = get_post();
131 +
132 + // Add Framework classname if we need to enforce blog typography over general typography FRM-2028
133 + if (defined('UICORE_ASSETS') && \Uicore\Helper::get_option('blogs_styles_tb') === 'true') {
134 + $this->add_render_attribute('_wrapper', 'class', 'blog-fonts');
135 + }
136 +
137 + if (post_password_required($post->ID)) {
124 138 //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
125 - echo get_the_password_form( $post->ID ); // WPCS: XSS ok.
126 - return;
127 - }
139 + echo get_the_password_form($post->ID); // WPCS: XSS ok.
140 + return;
141 + }
128 142
129 - // Avoid recursion
130 - if ( isset( $did_posts[ $post->ID ] ) ) {
131 - return;
132 - }
143 + // Avoid recursion
144 + if (isset($did_posts[$post->ID])) {
145 + return;
146 + }
133 147
134 - $did_posts[ $post->ID ] = true;
148 + $did_posts[$post->ID] = true;
135 149
136 - // End avoid recursion
137 - $editor = $elementor_instance->editor;
138 - $is_edit_mode = $editor->is_edit_mode();
150 + // End avoid recursion
151 + $editor = $elementor_instance->editor;
152 + $is_edit_mode = $editor->is_edit_mode();
139 153
140 - if ( !$is_edit_mode && !isset($_GET['uicore-tb']) ) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended
141 - the_content();
142 - } else {
143 - echo 'This is a dummy text to demonstration purposes. It will be replaced with the post content/excerpt. <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi scelerisque luctus velit. Etiam quis quam. Duis viverra diam non justo. Suspendisse sagittis ultrices augue. Duis sapien nunc, commodo et, interdum suscipit, sollicitudin et, dolor. Donec ipsum massa, ullamcorper in, auctor et. Proin pede metus, vulputate nec, fermentum fringilla, vehicula vitae, justo. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Aenean placerat. Pellentesque sapien. Mauris metus. Maecenas libero. Mauris dolor felis, sagittis at, luctus sed, aliquam non, tellus. In rutrum. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat. Praesent in mauris eu tortor porttitor accumsan. Nunc tincidunt ante vitae massa. Curabitur bibendum justo non orci. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Curabitur vitae diam non enim vestibulum interdum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Et harum quidem rerum facilis est et expedita distinctio. Duis bibendum, lectus ut viverra rhoncus, dolor nunc faucibus libero, eget facilisis enim ipsum id lacus.</p><p>Proin pede metus, vulputate nec, fermentum fringilla, vehicula vitae, justo. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Aenean placerat. Pellentesque sapien. Mauris metus. Maecenas libero. Mauris dolor felis, sagittis at, luctus sed, aliquam non, tellus. In rutrum. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat. Praesent in mauris eu tortor porttitor accumsan. Nunc tincidunt ante vitae massa. Curabitur bibendum justo non orci. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Curabitur vitae diam non enim vestibulum interdum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Et harum quidem rerum facilis est et expedita distinctio. Duis bibendum, lectus ut viverra rhoncus, dolor nunc faucibus libero, eget facilisis enim ipsum id lacus.</p> End of the dummy content.';
144 - }
154 + if (!$is_edit_mode && !isset($_GET['uicore-tb'])) { //phpcs:ignore WordPress.Security.NonceVerification.Recommended
155 + the_content();
156 + } else {
157 + echo 'This is a dummy text to demonstration purposes. It will be replaced with the post content/excerpt. <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi scelerisque luctus velit. Etiam quis quam. Duis viverra diam non justo. Suspendisse sagittis ultrices augue. Duis sapien nunc, commodo et, interdum suscipit, sollicitudin et, dolor. Donec ipsum massa, ullamcorper in, auctor et. Proin pede metus, vulputate nec, fermentum fringilla, vehicula vitae, justo. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Aenean placerat. Pellentesque sapien. Mauris metus. Maecenas libero. Mauris dolor felis, sagittis at, luctus sed, aliquam non, tellus. In rutrum. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat. Praesent in mauris eu tortor porttitor accumsan. Nunc tincidunt ante vitae massa. Curabitur bibendum justo non orci. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Curabitur vitae diam non enim vestibulum interdum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Et harum quidem rerum facilis est et expedita distinctio. Duis bibendum, lectus ut viverra rhoncus, dolor nunc faucibus libero, eget facilisis enim ipsum id lacus.</p><p>Proin pede metus, vulputate nec, fermentum fringilla, vehicula vitae, justo. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Aenean placerat. Pellentesque sapien. Mauris metus. Maecenas libero. Mauris dolor felis, sagittis at, luctus sed, aliquam non, tellus. In rutrum. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat. Praesent in mauris eu tortor porttitor accumsan. Nunc tincidunt ante vitae massa. Curabitur bibendum justo non orci. Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Curabitur vitae diam non enim vestibulum interdum. Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Et harum quidem rerum facilis est et expedita distinctio. Duis bibendum, lectus ut viverra rhoncus, dolor nunc faucibus libero, eget facilisis enim ipsum id lacus.</p> End of the dummy content.';
158 + }
145 159
146 - // Restore edit mode state
147 - $elementor_instance->editor->set_edit_mode( $is_edit_mode );
148 - }
160 + // Restore edit mode state
161 + $elementor_instance->editor->set_edit_mode($is_edit_mode);
162 + }
149 163 }
150 164 \Elementor\Plugin::instance()->widgets_manager->register(new TheContent());