Advertisement
Konark

Logo Widget backbone.js

Dec 9th, 2019
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.      * Render logo widget output in the editor.
  3.      *
  4.      * Written as a Backbone JavaScript template and used to generate the live preview.
  5.      *
  6.      * @since 1.0.0
  7.      */
  8.     protected function _content_template() {
  9.         ?><#
  10.         classes = Array(
  11.             'elementor-widget-cmsmasters-site-logo__container',
  12.             'cmsmasters-type-' + settings.logo_type,
  13.             'cmsmasters-flex-align-' + settings.logo_alignment,
  14.         );
  15.  
  16.         if ( undefined !== settings.logo_type && 'both' === settings.logo_type ) {
  17.             classes.push( 'cmsmasters-display-' + settings.logo_display );
  18.         }
  19.  
  20.         if ( undefined !== settings.text_position_logo_alignment &&
  21.             'both' === settings.logo_type &&
  22.             'inline' === settings.logo_display
  23.         ) {
  24.             classes.push( 'cmsmasters-align-' + settings.text_position_logo_alignment );
  25.         }
  26.  
  27.         if ( undefined !== settings.logo_subtitle_position &&
  28.             'both' === settings.logo_type &&
  29.             'inline' === settings.logo_display &&
  30.             'none' !== settings.logo_subtitle
  31.         ) {
  32.             classes.push( 'cmsmasters-subtitle-position-' + settings.logo_subtitle_position );
  33.         }
  34.        
  35.         if ( undefined !== settings.text_position_vertical_logo_alignment &&
  36.             'both' === settings.logo_type &&
  37.             'block' === settings.logo_display
  38.         ) {
  39.             classes.push( 'cmsmasters-vertical-' + settings.text_position_vertical_logo_alignment );
  40.         }
  41.  
  42.         if ( undefined !== settings.hover_animation && '' !== settings.hover_animation ) {
  43.             classes.push( 'elementor-animation-' + settings.hover_animation );
  44.         }
  45.  
  46.         view.addRenderAttribute('logo_classes', 'class', classes);
  47.  
  48.         var is_linked = 1,
  49.             logo_link = settings.logo_link,
  50.             logo_html = '';
  51.        
  52.         if ( 'none' === settings.logo_link ) {
  53.             is_linked = 0;
  54.         }
  55.  
  56.         if ( 'true' === settings.remove_link_on_front && '<?php echo is_front_page() ?>' ) {
  57.             is_linked = 0;
  58.         }
  59.  
  60.         logo_html += '<div ' + view.getRenderAttributeString( 'logo_classes' ) + '>';
  61.  
  62.         if ( is_linked ) {
  63.             if ( 'home' === logo_link ) {
  64.                 logo_html += '<a' +
  65.                     ' href="/"' +
  66.                     ' class="elementor-widget-cmsmasters-site-logo__wrapper"' +
  67.                     ( settings.open_in_new_window ? ' target="_blank"' : '' ) +
  68.                     ( settings.add_nofollow ? ' rel="nofollow"' : '' ) +
  69.                     '>';
  70.             } else if ( 'custom' === logo_link ) {
  71.                 logo_html += '<a' +
  72.                     ' href="' + settings.logo_custom_url + '"' +
  73.                     ' class="elementor-widget-cmsmasters-site-logo__wrapper"' +
  74.                     ( settings.logo_custom_url.is_external ? ' target="_blank"' : '' ) +
  75.                     ( settings.logo_custom_url.nofollow ? ' rel="nofollow"' : '' ) +
  76.                     '>';
  77.             }
  78.         } else {
  79.             logo_html += '<div class="elementor-widget-cmsmasters-site-logo__wrapper">';
  80.         }
  81.  
  82.         var getLogoImage = function() {
  83.             if ( 'default' === settings.logo_source ) {
  84.                 var image_data = wp_get_attachment_image_src( get_theme_mod( 'custom_logo' ), 'full' ),
  85.                     image_logo['url'] = $image_data[0];
  86.             } else {
  87.                 $image_data = wp_get_attachment_image_src( $image['id'], 'full' );
  88.                 $image_logo['url'] = $image_data[0];
  89.             }
  90.  
  91.             if ( 'text' === $type || ( ! $image && 'image' === $logo_image_type ) ) {
  92.                 return;
  93.             }
  94.  
  95.             if ( empty( $image_logo['url'] ) && 'image' === $logo_image_type ) {
  96.                 return;
  97.             }
  98.  
  99.             $out = '';
  100.  
  101.             if ( 'image' === $logo_image_type ) {
  102.                 $width = isset( $image_data[1] ) ? ' width="' . $image_data[1] . '"' : '';
  103.                 $height = isset( $image_data[2] ) ? ' height="' . $image_data[2] . '"' : '';
  104.                 $image_2x = '';
  105.  
  106.                 if ( isset( $settings['logo_image_2x'] ) && ! empty( $settings['logo_image_2x']['url'] ) ) {
  107.                     $image_2x = ' srcset="' . $image_logo['url'] . ' 1x, ' . $settings['logo_image_2x']['url'] . ' 2x"';
  108.                 }
  109.  
  110.                 $out .= '<img' .
  111.                     ' src="' . $image_logo['url'] . '"' .
  112.                     ' class="elementor-widget-cmsmasters-site-logo__img"' .
  113.                     ' alt="' . get_bloginfo( 'name' ) . '"' .
  114.                     "{$width}{$height}{$image_2x} />";
  115.             } else {
  116.                 $out .= '<div class="elementor-widget-cmsmasters-site-logo__icon">' .
  117.                     '<i class="' . $settings['logo_icon']['value'] . '"></i>' .
  118.                 '</div>';
  119.             }
  120.  
  121.             return $out;
  122.         }
  123.  
  124.         if ( 'default' === settings.logo_subtitle_position ) {
  125.             logo_html += $this->get_logo_image() .
  126.             '<div class="elementor-widget-cmsmasters-site-logo__wrapper-text">' .
  127.                 $this->get_logo_text() .
  128.                 $this->get_logo_subtitle() .
  129.             '</div>';
  130.         } else {
  131.             echo '<div class="cmsmasters-logo__title-wrapper">' .
  132.                 $this->get_logo_image() .
  133.                 '<div class="elementor-widget-cmsmasters-site-logo__wrapper-text">' .
  134.                     $this->get_logo_text() .
  135.                 '</div>' .
  136.             '</div>' .
  137.             $this->get_logo_subtitle();
  138.         }
  139.  
  140.         echo ( is_linked ? '</a>' : '</div>' ) .
  141.         '</div>';
  142.  
  143.         #><?php
  144.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement