MOON
Server: Apache
System: Linux server.netcommlabs.in 3.10.0-1160.83.1.el7.x86_64 #1 SMP Wed Jan 25 16:41:43 UTC 2023 x86_64
User: dermova (1051)
PHP: 5.4.45
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/dermova/public_html/india/wp-content/plugins/footer-putter/classes/class-credits.php
<?php

class Footer_Credits  {

   const CODE = 'footer-credits'; //shortcode prefix
	const SIDEBAR_ID = 'last-footer';

	public static function init() {
		add_action('widgets_init',array(__CLASS__,'register'),20);
		add_filter( 'wp_nav_menu_items', array(__CLASS__, 'fix_home_link'), 10, 2 );
		if (!is_admin()) add_action('wp',array(__CLASS__,'prepare'));
	}

	public static function register() {
		self::register_sidebars();
		self::register_widgets();
	}

    private static function register_sidebars() {
    	if (Footer_Credits_Options::get_option('footer_hook')) {
			$tag = self::is_html5() ? 'section' : 'div';
			register_sidebar( array(
				'id' => self::SIDEBAR_ID,
				'name'	=> __( 'Credibility Footer', __CLASS__ ),
				'description' => __( 'Custom footer section for copyright, trademarks, etc', __CLASS__),
				'before_widget' => '<'.$tag.' id="%1$s" class="widget %2$s"><div class="widget-wrap">',
				'after_widget'  => '</div></'.$tag.'>'				
			) );
		}
    }
	
	private static function register_widgets() {
		if (class_exists('Footer_Putter_Copyright_Widget')) register_widget('Footer_Putter_Copyright_Widget');
		if (class_exists('Footer_Putter_Trademark_Widget')) register_widget('Footer_Putter_Trademark_Widget');
	}	

	public static function is_html5() {
		return Footer_Putter_Utils::is_html5();
	}
	
	public static function prepare() {
		add_shortcode(self::CODE, array(__CLASS__, 'footer' ) );
		add_shortcode(self::CODE.'-contact', array(__CLASS__, 'contact' ) );
		add_shortcode(self::CODE.'-copyright', array(__CLASS__, 'copyright' ) );
		add_shortcode(self::CODE.'-menu', array(__CLASS__, 'footer_menu' ) );
		add_filter('widget_text', 'do_shortcode', 11);
		add_action('wp_enqueue_scripts',array(__CLASS__, 'enqueue_styles' ));

		$options = Footer_Credits_Options::get_options();
			
		//insert custom footer at specified hook
		if ($footer_hook = $options['footer_hook'])  {
			if ($options['footer_remove']) {
			   remove_all_actions( $footer_hook); 
			   if ($footer_hook =='wp_footer') {
               add_action( 'wp_footer', 'wp_print_footer_scripts', 20);  //put back the footer scripts             
               add_action( 'wp_footer', 'wp_admin_bar_render', 1000 ); //put back the admin bar
			   }
         }
			add_action( $footer_hook, array(__CLASS__, 'custom_footer')); 
		}
	
 		//suppress footer output
 		if ($ffs = $options['footer_filter_hook']) 
 			add_filter($ffs, array(__CLASS__, 'no_footer'),100); 

		if (is_page('privacy') && Footer_Credits_Options::get_term('privacy_contact'))
			add_filter('the_content', array(__CLASS__, 'add_privacy_footer'),9 );	

		if (is_page('terms') && Footer_Credits_Options::get_term('terms_contact'))
			add_filter('the_content', array(__CLASS__, 'add_terms_footer'),9 );	

		if (is_page('terms') || is_page('privacy') || is_page('affiliates') || is_page('disclaimer'))
			add_filter('the_content', array(__CLASS__, 'terms_filter') );	
				
	}
	
	public static function enqueue_styles() {
		wp_enqueue_style('footer-credits', plugins_url('styles/footer-credits.css',dirname(__FILE__)), array(), FOOTER_PUTTER_VERSION);
    }

	public static function register_admin_styles() {
		wp_register_style('footer-credits-admin', plugins_url('styles/admin.css',dirname(__FILE__)), array(), FOOTER_PUTTER_VERSION);
	}

	public static function enqueue_admin_styles() {
		wp_enqueue_style('footer-credits-admin');
 	}

	public static function return_to_top( $text, $class) {
		return sprintf( '<div id="footer-return" class="%1$s"><a rel="nofollow" href="#" onclick="window.scrollTo(0,0); return false;" >%2$s</a></div>', trim($class), $text);
	}

    private static function contact_info($params) {
        $org ='';
        if ($address = self::contact_address($params['show_address'], $params['use_microdata'], $params['separator'], $params['section_separator'])) $org .= $address;
        if ($telephone = self::contact_telephone($params['show_telephone'], $params['use_microdata'],  $params['item_separator'])) $org .= $telephone;
        if ($email = self::contact_email($params['show_email'], $params['use_microdata'], $params['item_separator'])) $org .= $email;
		$format = '<span' . ($params['use_microdata'] ? ' itemscope="itemscope" itemtype="http://schema.org/Organization"' : '') . '>%1$s</span>';
        return sprintf($format, $org);
    }

    private static function contact_telephone($show_telephone, $microdata, $prefix) {
      if  ($show_telephone && ($telephone = Footer_Credits_Options::get_term('telephone')))
        if ($microdata)
            return sprintf('%1$s<span itemprop="telephone" class="telephone">%2$s</span>', $prefix, $telephone) ;
        else
            return sprintf('%1$s<span class="telephone">%2$s</span>', $prefix, $telephone) ;
      else
            return '';
    }

    private static function contact_email($show_email, $microdata, $prefix) {
      if  ($show_email && ($email = Footer_Credits_Options::get_term('email')))
            return apply_filters ( 'footer_putter_contact_email', 
               sprintf('%1$s<a href="mailto:%2$s" class="email"%3$s>%2$s</a>', $prefix, $email, $microdata ? ' itemprop="email"' : '') );
      else
            return '';
    }

    private static function contact_address($show_address, $microdata, $separator, $prefix) {
      if  ($show_address)
        if ($microdata) {
            return self::org_location($separator, $prefix);
        } elseif ($address = Footer_Credits_Options::get_term('address'))
            return sprintf('%1$s<span class="address">%2$s%3$s</span>', $prefix, self::format_address($address, $separator), Footer_Credits_Options::get_term('country'));
      return '';
    }

    private static function format_address ($address, $separator) {
		$s='';
		$addlines = explode(',', trim($address));
		foreach ($addlines as $a) {
			$a = trim($a);
			if (!empty($a)) $s .= $a . $separator;
		}
		return $s;
    }	
	
    private static function org_location($separator, $prefix) {
        $location = '';
        if ($loc_address = self::location_address( $separator)) $location .=  $loc_address;
        if ($loc_geo = self::location_geo()) $location .= $loc_geo;
        if ($loc_map = self::location_map()) $location .= $loc_map;
        if ($location)
            return sprintf('%1$s<span itemprop="location" itemscope="itemscope" itemtype="http://schema.org/Place">%2$s</span>', $prefix, $location) ;
        else
            return '';
    }

    private static function location_address($separator) {
        $address = '';
        if ( $street_address = Footer_Credits_Options::get_term('street_address'))
            $address .=  sprintf('<span itemprop="streetAddress">%1$s</span>', self::format_address($street_address, $separator)) ;
        if ( $locality = Footer_Credits_Options::get_term('locality'))
                $address .=  sprintf('<span itemprop="addressLocality">%1$s</span>', self::format_address($locality, $separator)) ;
        if ( $region = Footer_Credits_Options::get_term('region'))
                $address .=  sprintf('<span itemprop="addressRegion">%1$s</span>', self::format_address($region, $separator)) ;
        if ( $postal_code = Footer_Credits_Options::get_term('postal_code'))
                $address .=  sprintf('<span itemprop="postalCode">%1$s</span>', self::format_address($postal_code, $separator)) ;
        if ( $country = Footer_Credits_Options::get_term('country'))
                $address .=  sprintf('<span itemprop="addressCountry">%1$s</span>', $country) ;

        if ($address)
            return sprintf('<span class="address" itemprop="address" itemscope="itemscope" itemtype="http://schema.org/PostalAddress">%1$s</span>',$address) ;
        else
            return '';
    }

    private static function location_geo() {
        $geo = '';
        if ( $latitude = Footer_Credits_Options::get_term('latitude')) $geo .=  sprintf('<meta itemprop="latitude" content="%1$s" />', $latitude) ;
        if ( $longitude = Footer_Credits_Options::get_term('longitude')) $geo .=  sprintf('<meta itemprop="longitude" content="%1$s" />', $longitude) ;
        return $geo ? sprintf('<span itemprop="geo" itemscope="itemscope" itemtype="http://schema.org/GeoCoordinates">%1$s</span>', $geo) : '';
    }

    private static function location_map() {
        if ( $map = Footer_Credits_Options::get_term('map'))
            return sprintf('<a rel="nofollow external" target="_blank" class="map" itemprop="map" href="%1$s">%2$s</a>', $map, __('Map')) ;
        else
            return '';
    }

	public static function copyright_owner($params){
  		return sprintf('<span class="copyright">%1$s %2$s</span>', 
  			Footer_Credits_Options::get_copyright($params['copyright_start_year']), $params['owner']);
	}	
	
    public static function contact($atts = array()) {
    	$all_defaults = Footer_Credits_Options::get_defaults();
		$defaults = array();
		$defaults['show_telephone'] = $all_defaults['show_telephone'];
		$defaults['show_email'] = $all_defaults['show_email'];
		$defaults['show_address'] = $all_defaults['show_address'];
		$defaults['use_microdata'] = $all_defaults['use_microdata'];
		$defaults['separator'] = $all_defaults['separator'];
		$defaults['item_separator'] = $all_defaults['item_separator'];
		$defaults['section_separator'] = $all_defaults['section_separator'];
		$defaults['footer_class'] = self::CODE;	
  		$params = shortcode_atts( $defaults, $atts ); //apply plugin defaults  		
        return sprintf ('<span class="%1$s">%2$s</span>', $params['footer_class'], self::contact_info($params));
    }

	public static function copyright($atts = array()){
		$defaults = array();
		$defaults['owner'] = Footer_Credits_Options::get_term('owner');
		$defaults['copyright_start_year'] = Footer_Credits_Options::get_term('copyright_start_year');	
		$defaults['footer_class'] = self::CODE;	
  		$params = shortcode_atts( $defaults, $atts ); //apply plugin defaults  		
        return sprintf ('<span class="%1$s">%2$s</span>', $params['footer_class'], self::copyright_owner($params));
	}	

	public static function footer_menu($atts = array()) {
 		$defaults = array('menu' => 'Footer Menu', 'echo' => false, 'container' => false, 'footer_class' => self::CODE);
   		$params = shortcode_atts( $defaults, $atts ); //apply plugin defaults	
        return sprintf ('<span class="%1$s">%2$s</span>', $params['footer_class'], wp_nav_menu($params));
	}

	public static function footer($atts = array()) {
  		$params = shortcode_atts( Footer_Credits_Options::get_options(), $atts ); //apply plugin defaults

		if ($params['center']) {
			if (! $params['two_lines']) $params['section_separator'] = $params['item_separator'];
			$params['return_class'] .= ' return-center';
			$params['footer_class'] .= ' footer-center';
			$clear = '';
		} else {
			if (! $params['two_lines']) $params['item_separator'] = $params['section_separator'] ;
			$params['return_class'] .= ' return-left';
			$params['footer_class'] .= ' footer-right';
			$clear = '<div class="clear"></div>';
		}	
		$format = '<div id="%1$s" class="%2$s">%3$s%4$s%5$s</div>%6$s';
		return (empty($params['show_return']) ? '' :
			self::return_to_top($params['return_text'], $params['return_class'])) . 
			sprintf($format,
				self::CODE,
				$params['footer_class'], 	
				(empty($params['nav_menu']) ? '' : self::footer_menu(array('menu' => $params['nav_menu']))),
				(empty($params['show_copyright']) ? '' : sprintf('%1$s%2$s', $params['item_separator'], self::copyright_owner(Footer_Credits_Options::get_terms()))),
				self::contact_info($params),
				$clear
			);				
	}

	public static function terms_filter($content) {
		if ($terms = Footer_Credits_Options::get_terms()) {
			$from = array();
			$to = array();
			foreach ($terms as $term => $value) {
				$from[] = '%%'.$term.'%%';
				$to[] = $value;
			}
			return str_replace($from,$to,$content);
		}
		return $content;
	}

	public static function custom_footer() {
		if ( is_active_sidebar( self::SIDEBAR_ID) ) {
         $class = 'custom-footer'. (Footer_Credits_Options::get_option('hide_wordpress') ? ' hide-wordpress' :'');
			if (self::is_html5()) {
				printf('<footer class="%1$s" role="contentinfo" itemscope="itemscope" itemtype="http://schema.org/WPFooter">', $class);
				dynamic_sidebar( self::SIDEBAR_ID );
				echo '</footer><!-- end .custom-footer -->';
			} else {
				printf('<div class="%1$s">', $class);
				dynamic_sidebar( self::SIDEBAR_ID );
				echo '</div><!-- end .custom-footer -->';
			}
		}
	}

    public static function no_footer($content) { return ''; }  		

	public static function add_privacy_footer($content) {
		$terms = Footer_Credits_Options::get_terms();		
		$email = $terms['email'];	
		$contact = <<< PRIVACY
<h2>How to Contact Us</h2> 
<p>Questions about this statement or about our handling of your information may be sent by email to <a href="mailto:{$email}">{$email}</a>, or by post to {$terms['owner']} Privacy Office, {$terms['address']} {$terms['country']}. </p>
PRIVACY;
		return (strpos($content,'%%') == FALSE) ? ($content . $contact) : $content;
	}

	public static function add_terms_footer($content) {
		$terms = Footer_Credits_Options::get_terms();	
		$disputes = <<< DISPUTES
<h2>Dispute Resolution</h2>
<p>These terms, and any dispute arising from the use of this site, will be governed by {$terms['courts']} without regard to its conflicts of laws provisions.</p>
DISPUTES;
		$feedback = <<< FEEDBACK
<h2>Feedback And Information</h2> 
<p>Any feedback you provide at this site shall be deemed to be non-confidential. {$terms['owner']} shall be free to use such information on an unrestricted basis.</p>
<p>The terms and conditions for this web site are subject to change without notice.<p>
<p>{$terms['copyright']} {$terms['owner']} All rights reserved.<br/> {$terms['owner']}, {$terms['address']} {$terms['country']}</p>
<p>Updated by The {$terms['owner']} Legal Team on {$terms['updated']}</p>
FEEDBACK;
		if (strpos($content,'%%') == FALSE) {
			$content .= $terms['courts'] ? $disputes : '';
			$content .= $terms['address'] ? $feedback : '';
		}
		return $content ;
	}

	public static function fix_home_link( $content, $args) {
		$class =  is_front_page()? ' class="current_page_item"' : '';
		$home_linktexts = array('Home','<span>Home</span>');
		foreach ($home_linktexts as $home_linktext) {
			$home_link = sprintf('<a>%1$s</a>',$home_linktext);
			if (strpos($content, $home_link) !== FALSE) 
				$content = str_replace ($home_link,sprintf('<a href="%1$s"%2$s>%3$s</a>',home_url(),$class,$home_linktext),$content); 
		} 
		return $content;
	}

}