/wp-content/themes/eportfolio/inc/customize/core/control.php
https://github.com/livinglab/openlab · PHP · 212 lines · 88 code · 27 blank · 97 comment · 6 complexity · 5ee2ef71198701930a3e0e4c17dcc092 MD5 · raw file
- <?php
- /**
- * Custom Customizer Controls.
- *
- * @package ePortfolio
- */
-
- /**
- * Customize Control for Taxonomy Select.
- *
- * @since 1.0.0
- *
- * @see WP_Customize_Control
- */
- class eportfolio_Dropdown_Taxonomies_Control extends WP_Customize_Control {
-
- /**
- * Control type.
- *
- * @access public
- * @var string
- */
- public $type = 'dropdown-taxonomies';
-
- /**
- * Taxonomy.
- *
- * @access public
- * @var string
- */
- public $taxonomy = '';
-
- /**
- * Constructor.
- *
- * @since 1.0.0
- *
- * @param WP_Customize_Manager $manager Customizer bootstrap instance.
- * @param string $id Control ID.
- * @param array $args Optional. Arguments to override class property defaults.
- */
- public function __construct( $manager, $id, $args = array() ) {
-
- $our_taxonomy = 'category';
- if ( isset( $args['taxonomy'] ) ) {
- $taxonomy_exist = taxonomy_exists( esc_attr( $args['taxonomy'] ) );
- if ( true === $taxonomy_exist ) {
- $our_taxonomy = esc_attr( $args['taxonomy'] );
- }
- }
- $args['taxonomy'] = $our_taxonomy;
- $this->taxonomy = esc_attr( $our_taxonomy );
-
- parent::__construct( $manager, $id, $args );
- }
-
- /**
- * Render content.
- *
- * @since 1.0.0
- */
- public function render_content() {
-
- $tax_args = array(
- 'hierarchical' => 0,
- 'taxonomy' => $this->taxonomy,
- );
- $all_taxonomies = get_categories( $tax_args );
-
- ?>
- <label>
- <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
- <select <?php $this->link(); ?>>
- <?php
- printf( '<option value="%s" %s>%s</option>', '', selected( $this->value(), '', false ), ' ' );
- ?>
- <?php if ( ! empty( $all_taxonomies ) ) : ?>
- <?php foreach ( $all_taxonomies as $key => $tax ) : ?>
- <?php
- printf( '<option value="%s" %s>%s</option>', esc_attr( $tax->term_id ), selected( $this->value(), $tax->term_id, false ), esc_html( $tax->name ) );
- ?>
- <?php endforeach ?>
- <?php endif ?>
- </select>
- </label>
- <?php
- }
- }
-
- /**
- * Customize Control for Radio Image.
- *
- * @since 1.0.0
- *
- * @see WP_Customize_Control
- */
- class eportfolio_Radio_Image_Control extends WP_Customize_Control {
-
- /**
- * Control type.
- *
- * @access public
- * @var string
- */
- public $type = 'radio-image';
-
- /**
- * Render content.
- *
- * @since 1.0.0
- */
- public function render_content() {
-
- if ( empty( $this->choices ) ) {
- return;
- }
-
- $name = '_customize-radio-' . $this->id;
-
- ?>
- <label>
- <?php if ( ! empty( $this->label ) ) : ?>
- <span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
- <?php endif; ?>
- <?php if ( ! empty( $this->description ) ) : ?>
- <span class="description customize-control-description"><?php echo $this->description; ?></span>
- <?php endif; ?>
-
- <?php foreach ( $this->choices as $value => $label ) : ?>
- <label>
- <input type="radio" value="<?php echo esc_attr( $value ); ?>" <?php $this->link();
- checked( $this->value(), $value ); ?> class="np-radio-image" name="<?php echo esc_attr( $name ); ?>"/>
- <span><img src="<?php echo esc_url( $label ); ?>" alt="<?php echo esc_attr( $value ); ?>" /></span>
- </label>
- <?php endforeach; ?>
- </label>
- <?php
- }
- }
-
- /**
- * Upsell customizer section.
- *
- * @since 1.0.0
- * @access public
- */
- class eportfolio_Customize_Section_Upsell extends WP_Customize_Section {
-
- /**
- * The type of customize section being rendered.
- *
- * @since 1.0.0
- * @access public
- * @var string
- */
- public $type = 'upsell';
-
- /**
- * Custom button text to output.
- *
- * @since 1.0.0
- * @access public
- * @var string
- */
- public $pro_text = '';
-
- /**
- * Custom pro button URL.
- *
- * @since 1.0.0
- * @access public
- * @var string
- */
- public $pro_url = '';
-
- /**
- * Add custom parameters to pass to the JS via JSON.
- *
- * @since 1.0.0
- * @access public
- * @return void
- */
- public function json() {
- $json = parent::json();
-
- $json['pro_text'] = $this->pro_text;
- $json['pro_url'] = esc_url( $this->pro_url );
-
- return $json;
- }
-
- /**
- * Outputs the Underscore.js template.
- *
- * @since 1.0.0
- * @access public
- * @return void
- */
- protected function render_template() { ?>
-
- <li id="accordion-section-{{ data.id }}" class="accordion-section control-section control-section-{{ data.type }} cannot-expand">
-
- <h3 class="accordion-section-title">
- {{ data.title }}
-
- <# if ( data.pro_text && data.pro_url ) { #>
- <a href="{{ data.pro_url }}" class="button button-secondary alignright" target="_blank">{{ data.pro_text }}</a>
- <# } #>
- </h3>
- </li>
- <?php }
- }