PluginProbe
Elementor Website Builder – more than just a page builder / 3.0.8
Elementor Website Builder – more than just a page builder v3.0.8
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / includes / controls / font.php

font.php in Elementor Website Builder – more than just a page builder 3.0.8, at includes/controls/font.php

87 lines 2.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 namespace Elementor;
3
4 if ( ! defined( 'ABSPATH' ) ) {
5 exit; // Exit if accessed directly.
6 }
7
8 /**
9 * Elementor font control.
10 *
11 * A base control for creating font control. Displays font select box. The
12 * control allows you to set a list of fonts.
13 *
14 * @since 1.0.0
15 */
16 class Control_Font extends Base_Data_Control {
17
18 /**
19 * Get font control type.
20 *
21 * Retrieve the control type, in this case `font`.
22 *
23 * @since 1.0.0
24 * @access public
25 *
26 * @return string Control type.
27 */
28 public function get_type() {
29 return 'font';
30 }
31
32 /**
33 * Get font control default settings.
34 *
35 * Retrieve the default settings of the font control. Used to return the default
36 * settings while initializing the font control.
37 *
38 * @since 1.0.0
39 * @access protected
40 *
41 * @return array Control default settings.
42 */
43 protected function get_default_settings() {
44 return [
45 'groups' => Fonts::get_font_groups(),
46 'options' => Fonts::get_fonts(),
47 ];
48 }
49
50 /**
51 * Render font control output in the editor.
52 *
53 * Used to generate the control HTML in the editor using Underscore JS
54 * template. The variables for the class are available using `data` JS
55 * object.
56 *
57 * @since 1.0.0
58 * @access public
59 */
60 public function content_template() {
61 $control_uid = $this->get_control_uid();
62 ?>
63 <div class="elementor-control-field">
64 <label for="<?php echo $control_uid; ?>" class="elementor-control-title">{{{ data.label }}}</label>
65 <div class="elementor-control-input-wrapper elementor-control-unit-5">
66 <select id="<?php echo $control_uid; ?>" class="elementor-control-font-family" data-setting="{{ data.name }}">
67 <option value=""><?php echo __( 'Default', 'elementor' ); ?></option>
68 <# _.each( data.groups, function( group_label, group_name ) {
69 var groupFonts = getFontsByGroups( group_name );
70 if ( ! _.isEmpty( groupFonts ) ) { #>
71 <optgroup label="{{ group_label }}">
72 <# _.each( groupFonts, function( fontType, fontName ) { #>
73 <option value="{{ fontName }}">{{{ fontName }}}</option>
74 <# } ); #>
75 </optgroup>
76 <# }
77 }); #>
78 </select>
79 </div>
80 </div>
81 <# if ( data.description ) { #>
82 <div class="elementor-control-field-description">{{{ data.description }}}</div>
83 <# } #>
84 <?php
85 }
86 }
87