Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- Section: iBox
- Author: PageLines
- Author URI: http://www.pagelines.com
- Description: An easy way to create and configure several box type sections at once.
- Class Name: pliBox
- Filter: component
- Loading: active
- */
- class pliBox extends PageLinesSection {
- var $default_limit = 4;
- function section_opts(){
- $options = array();
- $options[] = array(
- 'title' => __( 'iBox Configuration', 'pagelines' ),
- 'type' => 'multi',
- 'opts' => array(
- array(
- 'key' => 'ibox_count',
- 'type' => 'count_select',
- 'count_start' => 1,
- 'count_number' => 12,
- 'default' => 4,
- 'label' => __( 'Number of iBoxes to Configure', 'pagelines' ),
- ),
- array(
- 'key' => 'ibox_cols',
- 'type' => 'count_select',
- 'count_start' => 1,
- 'count_number' => 12,
- 'default' => '3',
- 'label' => __( 'Number of Columns for Each Box (12 Col Grid)', 'pagelines' ),
- ),
- array(
- 'key' => 'ibox_media',
- 'type' => 'select',
- 'opts' => array(
- 'icon' => array( 'name' => __( 'Icon Font', 'pagelines' ) ),
- 'image' => array( 'name' => __( 'Images', 'pagelines' ) ),
- 'text' => array( 'name' => __( 'Text Only, No Media', 'pagelines' ) )
- ),
- 'default' => 'icon',
- 'label' => __( 'Select iBox Media Type', 'pagelines' ),
- ),
- array(
- 'key' => 'ibox_format',
- 'type' => 'select',
- 'opts' => array(
- 'top' => array( 'name' => __( 'Media on Top', 'pagelines' ) ),
- 'left' => array( 'name' => __( 'Media at Left', 'pagelines' ) ),
- ),
- 'default' => 'top',
- 'label' => __( 'Select the iBox Media Location', 'pagelines' ),
- ),
- )
- );
- $slides = ($this->opt('ibox_count')) ? $this->opt('ibox_count') : $this->default_limit;
- $media = ($this->opt('ibox_media')) ? $this->opt('ibox_media') : 'icon';
- for($i = 1; $i <= $slides; $i++){
- $opts = array(
- array(
- 'key' => 'ibox_title_'.$i,
- 'label' => __( 'iBox Title', 'pagelines' ),
- 'type' => 'text'
- ),
- array(
- 'key' => 'ibox_text_'.$i,
- 'label' => __( 'iBox Text', 'pagelines' ),
- 'type' => 'textarea'
- ),
- array(
- 'key' => 'ibox_link_'.$i,
- 'label' => __( 'iBox Link (Optional)', 'pagelines' ),
- 'type' => 'text'
- ),
- );
- if($media == 'icon'){
- $opts[] = array(
- 'key' => 'ibox_icon_'.$i,
- 'label' => __( 'iBox Icon', 'pagelines' ),
- 'type' => 'select_icon',
- );
- } elseif($media == 'image'){
- $opts[] = array(
- 'key' => 'ibox_image_'.$i,
- 'label' => __( 'iBox Image', 'pagelines' ),
- 'type' => 'image_upload',
- );
- }
- $options[] = array(
- 'title' => __( 'iBox ', 'pagelines' ) . $i,
- 'type' => 'multi',
- 'opts' => $opts,
- );
- }
- return $options;
- }
- function section_template( ) {
- $boxes = ($this->opt('ibox_count')) ? $this->opt('ibox_count') : $this->default_limit;
- $cols = ($this->opt('ibox_cols')) ? $this->opt('ibox_cols') : 3;
- $media_type = ($this->opt('ibox_media')) ? $this->opt('ibox_media') : 'icon';
- $media_format = ($this->opt('ibox_format')) ? $this->opt('ibox_format') : 'top';
- $width = 0;
- $output = '';
- for($i = 1; $i <= $boxes; $i++):
- // TEXT
- $text = ($this->opt('ibox_text_'.$i)) ? $this->opt('ibox_text_'.$i) : 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean id lectus sem. Cras consequat lorem.';
- $text = sprintf('<div data-sync="ibox_text_%s">%s</div>', $i, $text );
- $title = ($this->opt('ibox_title_'.$i)) ? $this->opt('ibox_title_'.$i) : __('iBox '.$i, 'pagelines');
- $title = sprintf('<h4 data-sync="ibox_title_%s">%s</h4>', $i, $title );
- // LINK
- $link = $this->opt('ibox_link_'.$i);
- $media_link = ($link) ? sprintf('href="%s"', $link) : '';
- $format_class = ($media_format == 'left') ? 'media left-aligned' : 'top-aligned';
- $media_class = 'media-type-'.$media_type;
- $media_bg = '';
- $media_html = '';
- if( $media_type == 'icon' ){
- $media = ($this->opt('ibox_icon_'.$i)) ? $this->opt('ibox_icon_'.$i) : false;
- if(!$media){
- $icons = pl_icon_array();
- $media = $icons[ array_rand($icons) ];
- }
- $media_html = sprintf('<span class="ibox-icon-border media-type-icon"><i class="icon-3x icon-%s"></i></span>', $media);
- } elseif( $media_type == 'image' ){
- $media = ($this->opt('ibox_image_'.$i)) ? $this->opt('ibox_image_'.$i) : false;
- $media_html = '';
- $media_bg = ($media) ? sprintf('background-image: url(%s);', $media) : '';
- }
- if($width == 0)
- $output .= '<div class="row fix">';
- $output .= sprintf(
- '<div class="span%s ibox %s fix">
- <div class="ibox-media img">
- <span class="ibox-icon-border pl-animation pl-appear pl-contrast %s" style="%s">
- <a %s>
- %s</a>
- </span>
- </div>
- <div class="ibox-text bd">
- %s
- <div class="ibox-desc">
- %s
- %s
- </div>
- </div>
- </div>',
- $cols,
- $format_class,
- $media_class,
- $media_bg,
- $media_link,
- $media_html,
- $title,
- $text,
- $text_link
- );
- $width += $cols;
- if($width >= 12 || $i == $boxes){
- $width = 0;
- $output .= '</div>';
- }
- endfor;
- printf('<div class="ibox-wrapper pl-animation-group">%s</div>', $output);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement