daily pastebin goal
34%
SHARE
TWEET

iconlist

Guenni007 Mar 20th, 2019 (edited) 61 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /**
  3.  * Icon List Shortcode
  4.  * Guenni007 Addon - with h-tag choice for caption-title (h4 is default) since Enfold 4.5.5
  5.  * Creates a list with nice icons beside
  6.  */
  7. if ( ! defined( 'ABSPATH' ) ) {  exit;  }    // Exit if accessed directly
  8.  
  9. if ( ! class_exists( 'avia_sc_iconlist' ) )
  10. {
  11.     class avia_sc_iconlist extends aviaShortcodeTemplate
  12.     {
  13.            
  14.         /**
  15.          *
  16.          * @since 4.5.5
  17.          * @var array
  18.          */
  19.         protected $screen_options;
  20.        
  21.         /**
  22.          * @since 4.5.5
  23.          * @var string
  24.          */
  25.         protected $icon_html_styling;
  26.        
  27.         /**
  28.          * @since 4.5.5
  29.          * @var string
  30.          */
  31.         protected $title_styling;
  32.        
  33.         /**
  34.          * @since 4.5.5
  35.          * @var string
  36.          */
  37.         protected $content_styling;
  38.        
  39.         /**
  40.          * @since 4.5.5
  41.          * @var string
  42.          */
  43.         protected $content_class;
  44.        
  45.         /**
  46.          * @since 4.5.5
  47.          * @var string
  48.          */
  49.         protected $title_class;
  50.        
  51.         /**
  52.          * @since 4.5.5
  53.          * @var string
  54.          */
  55.         protected $iconlist_styling;
  56.        
  57.         /**
  58.          *
  59.          * @since 4.5.5
  60.          * @param AviaBuilder $builder
  61.          */
  62.         public function __construct( $builder )
  63.         {
  64.             $this->screen_options = array();
  65.             $this->icon_html_styling = '';
  66.             $this->title_styling = '';
  67.             $this->content_styling = '';
  68.             $this->content_class = '';
  69.             $this->title_class = '';
  70.             $this->iconlist_styling = '';
  71.                
  72.             parent::__construct( $builder );
  73.         }
  74.        
  75.         /**
  76.          * @since 4.5.5
  77.          */
  78.         public function __destruct()
  79.         {
  80.             parent::__destruct();
  81.            
  82.             unset( $this->screen_options );
  83.         }
  84.        
  85.             /**
  86.              * Create the config array for the shortcode button
  87.              */
  88.             function shortcode_insert_button()
  89.             {
  90.                 $this->config['self_closing']   =   'no';
  91.                
  92.                 $this->config['name']       = __('Icon List', 'avia_framework' );
  93.                 $this->config['tab']        = __('Content Elements', 'avia_framework' );
  94.                 $this->config['icon']       = AviaBuilder::$path['imagesURL']."sc-iconlist.png";
  95.                 $this->config['order']      = 90;
  96.                 $this->config['target']     = 'avia-target-insert';
  97.                 $this->config['shortcode']  = 'av_iconlist';
  98.                 $this->config['shortcode_nested'] = array('av_iconlist_item');
  99.                 $this->config['tooltip']    = __('Creates a list with nice icons beside', 'avia_framework' );
  100.                 $this->config['preview']    = true;
  101.                 $this->config['disabling_allowed'] = true;
  102.  
  103.             }
  104.            
  105.             function extra_assets()
  106.             {
  107.                 wp_enqueue_style( 'avia-module-icon' , AviaBuilder::$path['pluginUrlRoot'].'avia-shortcodes/icon/icon.css' , array('avia-layout'), false );
  108.                 wp_enqueue_style( 'avia-module-iconlist' , AviaBuilder::$path['pluginUrlRoot'].'avia-shortcodes/iconlist/iconlist.css' , array('avia-layout'), false );
  109.                
  110.                 wp_enqueue_script( 'avia-module-iconlist' , AviaBuilder::$path['pluginUrlRoot'].'avia-shortcodes/iconlist/iconlist.js' , array('avia-shortcodes'), false, TRUE );
  111.  
  112.             }
  113.  
  114.             /**
  115.              * Popup Elements
  116.              *
  117.              * If this function is defined in a child class the element automatically gets an edit button, that, when pressed
  118.              * opens a modal window that allows to edit the element properties
  119.              *
  120.              * @return void
  121.              */
  122.             function popup_elements()
  123.             {
  124.                 $this->elements = array(
  125.                     array(
  126.                             "type"  => "tab_container", 'nodescription' => true
  127.                         ),
  128.                        
  129.                     array(
  130.                             "type"  => "tab",
  131.                             "name"  => __("Content" , 'avia_framework'),
  132.                             'nodescription' => true
  133.                         ),
  134.  
  135.                         array(
  136.                             "name" => __("Add/Edit List items", 'avia_framework' ),
  137.                             "desc" => __("Here you can add, remove and edit the items of your item list.", 'avia_framework' ),
  138.                             "type"          => "modal_group",
  139.                             "id"            => "content",
  140.                             "modal_title"   => __("Edit List Item", 'avia_framework' ),
  141.                             "std"           => array(
  142.  
  143.                                                     array('title'=>__('List Title 1', 'avia_framework' ), 'icon'=>'43', 'content'=>'Enter content here'),
  144.                                                     array('title'=>__('List Title 2', 'avia_framework' ), 'icon'=>'25', 'content'=>'Enter content here'),
  145.                                                     array('title'=>__('List Title 3', 'avia_framework' ), 'icon'=>'64', 'content'=>'Enter content here'),
  146.  
  147.                                                     ),
  148.  
  149.  
  150.                             'subelements'   => array(
  151.  
  152.                                     array(
  153.                                     "name"  => __("List Item Title", 'avia_framework' ),
  154.                                     "desc"  => __("Enter the list item title here (Better keep it short)", 'avia_framework' ) ,
  155.                                     "id"    => "title",
  156.                                     "std"   => "List Title",
  157.                                     "type"  => "input"),
  158.  
  159.  
  160.                                 array(
  161.                                     "name"  => __("Title Link?", 'avia_framework' ),
  162.                                     "desc"  => __("Do you want to apply  a link to the title?", 'avia_framework' ),
  163.                                     "id"    => "link",
  164.                                     "type"  => "linkpicker",
  165.                                     "fetchTMPL" => true,
  166.                                     "std"   => "",
  167.                                     "subtype" => array(
  168.                                         __('No Link', 'avia_framework' ) =>'',
  169.                                         __('Set Manually', 'avia_framework' ) =>'manually',
  170.                                         __('Single Entry', 'avia_framework' ) =>'single',
  171.                                         __('Taxonomy Overview Page',  'avia_framework' )=>'taxonomy',
  172.                                     ),
  173.                                     "std"   => ""),
  174.  
  175.                                 array(
  176.                                     "name"  => __("Open in new window", 'avia_framework' ),
  177.                                     "desc"  => __("Do you want to open the link in a new window", 'avia_framework' ),
  178.                                     "id"    => "linktarget",
  179.                                     "required"  => array('link', 'not', ''),
  180.                                     "type"  => "select",
  181.                                     "std"   => "no",
  182.                                     "subtype" => AviaHtmlHelper::linking_options()),
  183.  
  184.  
  185.                                 array(
  186.                                     "name"  => __("Apply link to icon", 'avia_framework' ),
  187.                                     "desc"  => __("Do you want to apply the link to the icon?", 'avia_framework' ),
  188.                                     "id"    => "linkelement",
  189.                                     "required"  => array('link', 'not', ''),
  190.                                     "type"  => "select",
  191.                                     "std"   => "",
  192.                                     "subtype" => array(
  193.                                         __('No, apply link to the title', 'avia_framework' ) =>'',
  194.                                         __('Yes, apply link to icon and title', 'avia_framework' ) =>'both',
  195.                                         __('Yes, apply link to icon only', 'avia_framework' ) =>'only_icon'
  196.                                     )
  197.                                 ),
  198.  
  199.  
  200.                                 array(
  201.                                         "name"  => __("List Item Icon",'avia_framework' ),
  202.                                         "desc"  => __("Select an icon for your list item below",'avia_framework' ),
  203.                                         "id"    => "icon",
  204.                                         "type"  => "iconfont",
  205.                                         "std"   => "",
  206.                                         ),
  207.  
  208.  
  209.                                      array(
  210.                                     "name"  => __("List Item Content", 'avia_framework' ),
  211.                                     "desc"  => __("Enter some content here", 'avia_framework' ) ,
  212.                                     "id"    => "content",
  213.                                     "type"  => "tiny_mce",
  214.                                     "std"   => __("List Content goes here", 'avia_framework'),
  215.                                     ),
  216.  
  217.                         )
  218.                     ),
  219.  
  220.                     array(
  221.                         "name"  => __("Icon Position", 'avia_framework' ),
  222.                         "desc"  => __("Set the position of the icons", 'avia_framework' ),
  223.                         "id"    => "position",
  224.                         "type"  => "select",
  225.                         "std"   => "left",
  226.                         "subtype" => array( __('Left', 'avia_framework' )  =>'left',
  227.                                             __('Right', 'avia_framework' ) =>'right',
  228.                     )),
  229.                    
  230.                    
  231.                     array(
  232.                         "name"  => __("Icon List Styling", 'avia_framework' ),
  233.                         "desc"  => __("Change the styling of your iconlist", 'avia_framework' ),
  234.                         "id"    => "iconlist_styling",
  235.                         "type"  => "select",
  236.                         "std"   => "",
  237.                         "subtype" => array( __('Default (Big List)', 'avia_framework' )  =>'',
  238.                                             __('Minimal small list', 'avia_framework' ) =>'av-iconlist-small',
  239.                     )),
  240.  
  241.                     array(
  242.                         "name"  => __("Animation", 'avia_framework' ),
  243.                         "desc"  => __("Should the items appear in an animated way?", 'avia_framework' ),
  244.                         "id"    => "animation",
  245.                         "type"  => "select",
  246.                         "std"   => "",
  247.                         "subtype" => array(
  248.                             __('Animation activated',  'avia_framework' ) =>'',
  249.                             __('Animation deactivated',  'avia_framework' ) =>'deactivated',
  250.                         )),
  251.  
  252.  
  253. /* new array to have h-tag choice */
  254.  
  255.                     array( 
  256.                         "name"  => __("Heading Type", 'avia_framework' ),
  257.                         "desc"  => __("Select heading type.", 'avia_framework' ),
  258.                         "id"    => "custom_title_tag",
  259.                         "type"  => "select",
  260.                         "std"   => "h4",
  261.                         "subtype" => array("H2"=>'h2',"H3"=>'h3',"H4"=>'h4',"H5"=>'h5',"H6"=>'h6')
  262.                             ),                 
  263. /* End of new array*/
  264.  
  265.  
  266.                     array( 
  267.                         "name"  => __("Title Font Size", 'avia_framework' ),
  268.                         "desc"  => __("Select a custom font size. Leave empty to use the default", 'avia_framework' ),
  269.                         "id"    => "custom_title_size",
  270.                         "type"  => "select",
  271.                         "std"   => "",
  272.                         "container_class" => 'av_half',
  273.                         "subtype" => AviaHtmlHelper::number_array(10,50,1, array( __("Default Size", 'avia_framework' )=>''), 'px'),
  274.                             ),
  275.                        
  276.                     array( 
  277.                         "name"  => __("Content Font Size", 'avia_framework' ),
  278.                         "desc"  => __("Select a custom font size. Leave empty to use the default", 'avia_framework' ),
  279.                         "id"    => "custom_content_size",
  280.                         "type"  => "select",
  281.                         "std"   => "",
  282.                         "container_class" => 'av_half av_no_bottom',
  283.                         "subtype" => AviaHtmlHelper::number_array(10,50,1, array( __("Default Size", 'avia_framework' )=>''), 'px'),
  284.                         ),
  285.                    
  286.                    
  287.  
  288.                     array(
  289.                             "type"  => "close_div",
  290.                             'nodescription' => true
  291.                         ),
  292.                    
  293.                     array(
  294.                             "type"  => "tab",
  295.                             "name"  => __("Colors",'avia_framework' ),
  296.                             'nodescription' => true
  297.                         ),
  298.                    
  299.                    
  300.                     array(
  301.                             "name"  => __("Font Colors", 'avia_framework' ),
  302.                             "desc"  => __("Either use the themes default colors or apply some custom ones", 'avia_framework' ),
  303.                             "id"    => "font_color",
  304.                             "type"  => "select",
  305.                             "std"   => "",
  306.                             "subtype" => array( __('Default', 'avia_framework' )=>'',
  307.                                                 __('Define Custom Colors', 'avia_framework' )=>'custom'),
  308.                     ),
  309.                    
  310.                     array( 
  311.                             "name"  => __("Custom Title Font Color", 'avia_framework' ),
  312.                             "desc"  => __("Select a custom font color. Leave empty to use the default", 'avia_framework' ),
  313.                             "id"    => "custom_title",
  314.                             "type"  => "colorpicker",
  315.                             "std"   => "",
  316.                             "container_class" => 'av_half av_half_first',
  317.                             "required" => array('font_color','equals','custom')
  318.                         ), 
  319.                        
  320.                     array( 
  321.                             "name"  => __("Custom Content Font Color", 'avia_framework' ),
  322.                             "desc"  => __("Select a custom font color. Leave empty to use the default", 'avia_framework' ),
  323.                             "id"    => "custom_content",
  324.                             "type"  => "colorpicker",
  325.                             "std"   => "",
  326.                             "container_class" => 'av_half',
  327.                             "required" => array('font_color','equals','custom')
  328.                    
  329.                     ),
  330.                    
  331.                    
  332.                    
  333.                     array(
  334.                             "name"  => __("Icon Colors", 'avia_framework' ),
  335.                             "desc"  => __("Either use the themes default colors or apply some custom ones", 'avia_framework' ),
  336.                             "id"    => "color",
  337.                             "type"  => "select",
  338.                             "std"   => "",
  339.                             "subtype" => array( __('Default', 'avia_framework' )=>'',
  340.                                                 __('Define Custom Colors', 'avia_framework' )=>'custom'),
  341.                                                
  342.                     ),
  343.                    
  344.                     array( 
  345.                             "name"  => __("Custom Background Color", 'avia_framework' ),
  346.                             "desc"  => __("Select a custom background color. Leave empty to use the default", 'avia_framework' ),
  347.                             "id"    => "custom_bg",
  348.                             "type"  => "colorpicker",
  349.                             "std"   => "",
  350.                             "container_class" => 'av_third av_third_first',
  351.                             "required" => array('color','equals','custom')
  352.                         ), 
  353.                        
  354.                     array( 
  355.                             "name"  => __("Custom Font Color", 'avia_framework' ),
  356.                             "desc"  => __("Select a custom font color. Leave empty to use the default", 'avia_framework' ),
  357.                             "id"    => "custom_font",
  358.                             "type"  => "colorpicker",
  359.                             "std"   => "",
  360.                             "container_class" => 'av_third',
  361.                             "required" => array('color','equals','custom')
  362.                         ), 
  363.                    
  364.                     array( 
  365.                             "name"  => __("Custom Border Color", 'avia_framework' ),
  366.                             "desc"  => __("Select a custom border color. Leave empty to use the default", 'avia_framework' ),
  367.                             "id"    => "custom_border",
  368.                             "type"  => "colorpicker",
  369.                             "std"   => "",
  370.                             "container_class" => 'av_third',
  371.                             "required" => array('color','equals','custom')
  372.                         ),
  373.                    
  374.                    
  375.                            
  376.                     array(
  377.                             "type"  => "close_div",
  378.                             'nodescription' => true
  379.                         ),
  380.                        
  381.                        
  382.                     array(
  383.                                     "type"  => "tab",
  384.                                     "name"  => __("Screen Options",'avia_framework' ),
  385.                                     'nodescription' => true
  386.                                 ),
  387.                                
  388.                                
  389.                                 array(
  390.                                 "name"  => __("Element Visibility",'avia_framework' ),
  391.                                 "desc"  => __("Set the visibility for this element, based on the device screensize.", 'avia_framework' ),
  392.                                 "type"  => "heading",
  393.                                 "description_class" => "av-builder-note av-neutral",
  394.                                 ),
  395.                            
  396.                                 array( 
  397.                                         "desc"  => __("Hide on large screens (wider than 990px - eg: Desktop)", 'avia_framework'),
  398.                                         "id"    => "av-desktop-hide",
  399.                                         "std"   => "",
  400.                                         "container_class" => 'av-multi-checkbox',
  401.                                         "type"  => "checkbox"),
  402.                                
  403.                                 array( 
  404.                                    
  405.                                         "desc"  => __("Hide on medium sized screens (between 768px and 989px - eg: Tablet Landscape)", 'avia_framework'),
  406.                                         "id"    => "av-medium-hide",
  407.                                         "std"   => "",
  408.                                         "container_class" => 'av-multi-checkbox',
  409.                                         "type"  => "checkbox"),
  410.                                        
  411.                                 array( 
  412.                                    
  413.                                         "desc"  => __("Hide on small screens (between 480px and 767px - eg: Tablet Portrait)", 'avia_framework'),
  414.                                         "id"    => "av-small-hide",
  415.                                         "std"   => "",
  416.                                         "container_class" => 'av-multi-checkbox',
  417.                                         "type"  => "checkbox"),
  418.                                        
  419.                                 array( 
  420.                                    
  421.                                         "desc"  => __("Hide on very small screens (smaller than 479px - eg: Smartphone Portrait)", 'avia_framework'),
  422.                                         "id"    => "av-mini-hide",
  423.                                         "std"   => "",
  424.                                         "container_class" => 'av-multi-checkbox',
  425.                                         "type"  => "checkbox"),
  426.                                    
  427.                                
  428.                                    
  429.                                 array(
  430.                                     "name"  => __("Heading Font Size",'avia_framework' ),
  431.                                     "desc"  => __("Set the font size for the heading, based on the device screensize.", 'avia_framework' ),
  432.                                     "type"  => "heading",
  433.                                     "description_class" => "av-builder-note av-neutral",
  434.                                     ),
  435.                                        
  436.                                     array(  "name"  => __("Font Size for medium sized screens (between 768px and 989px - eg: Tablet Landscape)", 'avia_framework' ),
  437.                                     "id"    => "av-medium-font-size-title",
  438.                                     "type"  => "select",
  439.                                     "subtype" => AviaHtmlHelper::number_array(10,120,1, array( __("Default", 'avia_framework' )=>'' , __("Hidden", 'avia_framework' )=>'hidden' ), "px"),
  440.                                     "std" => ""),
  441.                                    
  442.                                     array(  "name"  => __("Font Size for small screens (between 480px and 767px - eg: Tablet Portrait)", 'avia_framework' ),
  443.                                     "id"    => "av-small-font-size-title",
  444.                                     "type"  => "select",
  445.                                     "subtype" => AviaHtmlHelper::number_array(10,120,1, array( __("Default", 'avia_framework' )=>'', __("Hidden", 'avia_framework' )=>'hidden'), "px"),
  446.                                     "std" => ""),
  447.                                    
  448.                                     array(  "name"  => __("Font Size for very small screens (smaller than 479px - eg: Smartphone Portrait)", 'avia_framework' ),
  449.                                     "id"    => "av-mini-font-size-title",
  450.                                     "type"  => "select",
  451.                                     "subtype" => AviaHtmlHelper::number_array(10,120,1, array( __("Default", 'avia_framework' )=>'', __("Hidden", 'avia_framework' )=>'hidden'), "px"),
  452.                                     "std" => ""),
  453.                                    
  454.                                    
  455.                                 array(
  456.                                     "name"  => __("Content Font Size",'avia_framework' ),
  457.                                     "desc"  => __("Set the font size for the content, based on the device screensize.", 'avia_framework' ),
  458.                                     "type"  => "heading",
  459.                                     "description_class" => "av-builder-note av-neutral",
  460.                                     ),
  461.                                        
  462.                                     array(  "name"  => __("Font Size for medium sized screens (between 768px and 989px - eg: Tablet Landscape)", 'avia_framework' ),
  463.                                     "id"    => "av-medium-font-size",
  464.                                     "type"  => "select",
  465.                                     "subtype" => AviaHtmlHelper::number_array(10,120,1, array( __("Default", 'avia_framework' )=>'', __("Hidden", 'avia_framework' )=>'hidden'), "px"),
  466.                                     "std" => ""),
  467.                                    
  468.                                     array(  "name"  => __("Font Size for small screens (between 480px and 767px - eg: Tablet Portrait)", 'avia_framework' ),
  469.                                     "id"    => "av-small-font-size",
  470.                                     "type"  => "select",
  471.                                     "subtype" => AviaHtmlHelper::number_array(10,120,1, array( __("Default", 'avia_framework' )=>'', __("Hidden", 'avia_framework' )=>'hidden'), "px"),
  472.                                     "std" => ""),
  473.                                    
  474.                                     array(  "name"  => __("Font Size for very small screens (smaller than 479px - eg: Smartphone Portrait)", 'avia_framework' ),
  475.                                     "id"    => "av-mini-font-size",
  476.                                     "type"  => "select",
  477.                                     "subtype" => AviaHtmlHelper::number_array(10,120,1, array( __("Default", 'avia_framework' )=>'', __("Hidden", 'avia_framework' )=>'hidden'), "px"),
  478.                                     "std" => ""),    
  479.                
  480.                            
  481.                                
  482.                             array(
  483.                                     "type"  => "close_div",
  484.                                     'nodescription' => true
  485.                                 ),
  486.                    
  487.                        
  488.                     array(
  489.                             "type"  => "close_div",
  490.                             'nodescription' => true
  491.                         ),
  492.  
  493.                 );
  494.  
  495.  
  496.             }
  497.  
  498.             /**
  499.              * Editor Sub Element - this function defines the visual appearance of an element that is displayed within a modal window and on click opens its own modal window
  500.              * Works in the same way as Editor Element
  501.              * @param array $params this array holds the default values for $content and $args.
  502.              * @return $params the return array usually holds an innerHtml key that holds item specific markup.
  503.              */
  504.             function editor_sub_element($params)
  505.             {
  506.                 $template = $this->update_template("title", __("Element", 'avia_framework' ). ": {{title}}");
  507.  
  508.                 extract(av_backend_icon($params)); // creates $font and $display_char if the icon was passed as param "icon" and the font as "font"
  509.  
  510.                 $params['innerHtml']  = "";
  511.                 $params['innerHtml'] .= "<div class='avia_title_container'>";
  512.                 $params['innerHtml'] .= "<span ".$this->class_by_arguments('font' ,$font).">";
  513.                 $params['innerHtml'] .= "<span data-update_with='icon_fakeArg' class='avia_tab_icon'>".$display_char."</span>";
  514.                 $params['innerHtml'] .= "</span>";
  515.                 $params['innerHtml'] .= "<span {$template} >".__("Element", 'avia_framework' ).": ".$params['args']['title']."</span></div>";
  516.  
  517.                 return $params;
  518.             }
  519.  
  520.  
  521.  
  522.             /**
  523.              * Frontend Shortcode Handler
  524.              *
  525.              * @param array $atts array of attributes
  526.              * @param string $content text within enclosing form of shortcode element
  527.              * @param string $shortcodename the shortcode found, when == callback name
  528.              * @return string $output returns the modified html string
  529.              */
  530.             function shortcode_handler($atts, $content = "", $shortcodename = "", $meta = "")
  531.             {
  532.                 $this->screen_options = AviaHelper::av_mobile_sizes( $atts );
  533.                
  534.                 extract( $this->screen_options ); //return $av_font_classes, $av_title_font_classes and $av_display_classes
  535.                
  536.                 extract( shortcode_atts( array(
  537.                                             'position'              => 'left',
  538.                                             'color'                 => '',
  539.                                             'custom_bg'             => '',
  540.                                             'custom_border'         => '',
  541.                                             'custom_font'           => '',
  542.                                             'font_color'            => "",
  543.                                             'custom_title'          => '',
  544.                                             'custom_title_tag'      => '',
  545.                                             'custom_content'        => '',
  546.                                             'custom_title_size'     => '',
  547.                                             'custom_content_size'   => '',
  548.                                             'iconlist_styling'      => '',
  549.                                             'animation'             => ''
  550.                
  551.                                     ), $atts, $this->config['shortcode'] ) );
  552.  
  553.                 $this->custom_title_tag     = "";
  554.                 $this->icon_html_styling = '';
  555.                 $this->title_styling = '';
  556.                 $this->content_styling = '';
  557.                 $this->content_class = '';
  558.                 $this->title_class = '';
  559.                 $this->iconlist_styling = '';              
  560.                 $this->iconlist_styling = $iconlist_styling == 'av-iconlist-small' ? "av-iconlist-small" : "av-iconlist-big";
  561.                
  562.                 if($color == "custom")
  563.                 {
  564.                     $this->icon_html_styling .= !empty($custom_bg) ? "background-color:{$custom_bg}; " : "";
  565.                     $this->icon_html_styling .= !empty($custom_border) ? "border:1px solid {$custom_border}; " : "";
  566.                     $this->icon_html_styling .= !empty($custom_font) ? "color:{$custom_font}; " : "";
  567.                    
  568.                 }
  569.                
  570.                 if($font_color == "custom")
  571.                 {
  572.                     $this->title_styling        .= !empty($custom_title) ? "color:{$custom_title}; " : "";
  573.                     $this->content_styling      .= !empty($custom_content) ? "color:{$custom_content}; " : "";
  574.                    
  575.                     if($this->content_styling)  
  576.                     {
  577.                         $this->content_class = "av_inherit_color";
  578.                     }
  579.                    
  580.                     if($this->title_styling)
  581.                     {
  582.                         $this->title_class = "av_inherit_color";
  583.                     }
  584.                    
  585.                 }
  586.  
  587. /*some new lines here */
  588.                 if($custom_title_tag)
  589.                 {
  590.                     $this->custom_title_tag .= "{$custom_title_tag}";
  591.                 }
  592. /*end */
  593.                
  594.                 if($custom_title_size)
  595.                 {
  596.                     $this->title_styling .= "font-size:{$custom_title_size}px; ";
  597.                     if($this->iconlist_styling  == 'av-iconlist-small'){
  598.                         $this->icon_html_styling .= "font-size:{$custom_title_size}px; ";
  599.                     }
  600.                 }
  601.                
  602.                 if($custom_content_size)
  603.                 {
  604.                     $this->content_styling .= "font-size:{$custom_content_size}px; ";
  605.                 }
  606.                
  607.                
  608.                 if($this->icon_html_styling) $this->icon_html_styling = " style='{$this->icon_html_styling}'" ;
  609.                 if($this->title_styling)  { $this->title_styling = " style='{$this->title_styling}'" ; }
  610.                 if($this->content_styling){ $this->content_styling = " style='{$this->content_styling}'" ; }
  611.  
  612.  
  613.                 // animation
  614.                 $animation_class = "";
  615.                 if ($animation == ''){
  616.                     $animation_class = "avia-iconlist-animate";
  617.                 }
  618.                    
  619.                    
  620.                 $output  = "";
  621.                 $output .= "<div class='avia-icon-list-container {$av_display_classes} ".$meta['el_class']."'>";
  622.                 $output .= "<ul class='avia-icon-list avia-icon-list-{$position} {$this->iconlist_styling} avia_animate_when_almost_visible {$animation_class}'>";
  623.                 $output .= ShortcodeHelper::avia_remove_autop( $content, true );
  624.                 $output .= "</ul>";
  625.                 $output .= "</div>";
  626.  
  627.  
  628.                 return $output;
  629.             }
  630.  
  631.             function av_iconlist_item($atts, $content = "", $shortcodename = "")
  632.             {
  633.                 /**
  634.                  * Fixes a problem when 3-rd party plugins call nested shortcodes without executing main shortcode  (like YOAST in wpseo-filter-shortcodes)
  635.                  */
  636.                 if( empty( $this->screen_options ) )
  637.                 {
  638.                     return '';
  639.                 }
  640.                
  641.                 extract( $this->screen_options ); //return $av_font_classes, $av_title_font_classes and $av_display_classes
  642.                
  643.                 $atts =  shortcode_atts( array(
  644.                                 'title'         => '',
  645.                                 'link'          => '',
  646.                                 'icon'          => '',
  647.                                 'font'          => '',
  648.                                 'linkelement'   => '',
  649.                                 'linktarget'    => '',
  650.                                 'custom_markup' => '',
  651.                
  652.                             ), $atts, 'av_iconlist_item' );
  653.                
  654.                 $display_char = av_icon($atts['icon'], $atts['font']);
  655.                 $display_char_wrapper = array();
  656.  
  657.                 $blank = (strpos($atts['linktarget'], '_blank') !== false || $atts['linktarget'] == 'yes') ? ' target="_blank" ' : "";
  658.                 $blank .= strpos($atts['linktarget'], 'nofollow') !== false ? ' rel="nofollow" ' : "";
  659.                 if(!empty($atts['link']))
  660.                 {
  661.                     $atts['link'] = aviaHelper::get_url($atts['link']);
  662.  
  663.                     if(!empty($atts['link']))
  664.                     {
  665.                         $linktitle = $atts['title'];
  666.  
  667.                         switch($atts['linkelement'])
  668.                         {
  669.                             case 'both':
  670.                                 if($atts['title']) $atts['title'] = "<a href='{$atts['link']}' title='".esc_attr($linktitle)."'{$blank}>{$linktitle}</a>";
  671.                                 $display_char_wrapper['start'] = "a href='{$atts['link']}' title='".esc_attr($linktitle)."' {$blank}";
  672.                                 $display_char_wrapper['end'] = 'a';
  673.                                 break;
  674.                             case 'only_icon':
  675.                                 $display_char_wrapper['start'] = "a href='{$atts['link']}' title='".esc_attr($linktitle)."' {$blank}";
  676.                                 $display_char_wrapper['end'] = 'a';
  677.                                 break;
  678.                             default:
  679.                                 if($atts['title']) $atts['title'] = "<a href='{$atts['link']}' title='".esc_attr($linktitle)."'{$blank}>{$linktitle}</a>";
  680.                                 $display_char_wrapper['start'] = 'div';
  681.                                 $display_char_wrapper['end'] = 'div';
  682.                                 break;
  683.                         }
  684.                     }
  685.                 }
  686.  
  687.                 if(empty($display_char_wrapper))
  688.                 {
  689.                     $display_char_wrapper['start'] = 'div';
  690.                     $display_char_wrapper['end'] = 'div';
  691.                 }
  692.                
  693.                 $contentClass = "";
  694.                 if(trim($content) == "")
  695.                 {
  696.                     $contentClass = "av-iconlist-empty";
  697.                 }
  698.                
  699. /*some new lines here on small list it is now h-tag too */    
  700.            
  701.                 $title_el = $this->custom_title_tag ;
  702.                 $iconlist_title = "";
  703.                 if($this->iconlist_styling == "av-iconlist-small")
  704.                 {
  705.                     $title_el = $this->custom_title_tag ;
  706.                     $iconlist_title = "_" . "small";
  707.                 }
  708.                
  709.  /*finished */
  710.                
  711.                
  712.  
  713.                 $output  = "";
  714.                 $output .= "<li>";
  715.                 $output .=      "<{$display_char_wrapper['start']} {$this->icon_html_styling} class='iconlist_icon  avia-font-".$atts['font']."'><span class='iconlist-char ' {$display_char}></span></{$display_char_wrapper['end']}>";
  716.                 $output .=          '<article class="article-icon-entry '.$contentClass.'" '.avia_markup_helper(array('context' => 'entry','echo'=>false, 'custom_markup'=>$atts['custom_markup'])).'>';
  717.                 $output .=              "<div class='iconlist_content_wrap'>";
  718.                 $output .=                  '<header class="entry-content-header">';
  719.                 $markup = avia_markup_helper(array('context' => 'entry_title','echo'=>false, 'custom_markup'=>$atts['custom_markup']));
  720.                 if(!empty($atts['title'])) $output .="<{$title_el} class='av_iconlist_title iconlist_title{$iconlist_title} {$this->title_class} {$av_title_font_classes}' {$markup} {$this->title_styling}>".$atts['title']."</{$title_el}>";
  721.                 $output .=                  '</header>';
  722.                 $markup = avia_markup_helper(array('context' => 'entry_content','echo'=>false, 'custom_markup'=>$atts['custom_markup']));
  723.                 $output .=                  "<div class='iconlist_content {$this->content_class} {$av_font_classes}' {$markup} {$this->content_styling}>".ShortcodeHelper::avia_apply_autop(ShortcodeHelper::avia_remove_autop( $content ) )."</div>";
  724.                 $output .=              "</div>";
  725.                 $output .=              '<footer class="entry-footer"></footer>';
  726.                 $output .=          '</article>';
  727.                 $output .=      "<div class='iconlist-timeline'></div>";
  728.                 $output .= "</li>";
  729.  
  730.                 return $output;
  731.             }
  732.  
  733.  
  734.     }
  735. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top