WordPress – DMS – iBox anklickbar
dms/sections/ibox/section.php
<?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) : '';
/*$text_link = ($link) ? sprintf('<div class="ibox-link"><a href="%s">%s <i class="icon-angle-right"></i></a></div>', $link, __('More', 'pagelines')) : '';*/
$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('<i class="icon-3x icon-%s"></i>', $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);
}
}