/var/www/hkosl.com/aga/wp-content/plugins/so-widgets-bundle/base/inc/fields/widget.class.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php

/**
 * Class SiteOrigin_Widget_Field_Widget
 */
class SiteOrigin_Widget_Field_Widget extends SiteOrigin_Widget_Field_Container_Base {
    
/**
     * The class name of the widget to be included.
     *
     * @access protected
     * @var string
     */
    
protected $class;
    
/**
     * A filter for the widget's form fields. In some cases we may want to filter some fields out of a sub-widget form.
     *
     * @access protected
     * @var callable
     */
    
protected $form_filter;

    public function 
__construct$base_name$element_id$element_name$field_optionsSiteOrigin_Widget $for_widget$parent_container = array() ) {
        
parent::__construct$base_name$element_id$element_name$field_options$for_widget$parent_container );

        if( isset( 
$this->class ) ) {
            if( 
class_exists$this->class ) ) {
                
/* @var $sub_widget SiteOrigin_Widget */
                
$sub_widget = new $this->class;
                if( 
is_a$sub_widget'SiteOrigin_Widget' ) ) {
                    if ( ! empty( 
$this->form_filter ) && is_callable$this->form_filter ) ) {
                        
$this->fields call_user_func$this->form_filter$sub_widget->form_options$this->for_widget ) );
                    } else {
                        
$this->fields $sub_widget->form_options$this->for_widget );
                    }
                }
            }
        }
    }

    protected function 
render_field$value$instance ) {
        
        echo 
'<div class="siteorigin-widget-widget">';
        if ( 
$this->collapsible ) {
            
?><div class="siteorigin-widget-section <?php if( $this->state == 'closed' ) echo 'siteorigin-widget-section-hide'?>"><?php
        
}

        if( ! 
class_exists$this->class ) ) {
            
printf__'%s does not exist''so-widgets-bundle' ), $this->class );
            if ( 
$this->collapsible ) {
                echo 
'</div>';
            }
            return;
        }

        
/* @var $sub_widget SiteOrigin_Widget */
        
$sub_widget = new $this->class;
        if( ! 
is_a$sub_widget'SiteOrigin_Widget' ) ) {
            
printf__'%s is not a SiteOrigin Widget''so-widgets-bundle' ), $this->class );
            if ( 
$this->collapsible ) {
                echo 
'</div>';
            }
            return;
        }
        
$this->create_and_render_sub_fields$value, array( 'name' => $this->base_name'type' => 'widget' ) );
        if ( 
$this->collapsible ) {
            
?></div><?php
        
}
        echo 
'</div>';
    }

}