Viewing File: /home/maglabs/exclusive/wp-content/plugins/g5-element/inc/template.class.php
<?php
// Do not allow directly accessing this file.
if (!defined('ABSPATH')) {
exit('Direct script access denied.');
}
if (!class_exists('G5Element_Template')) {
class G5Element_Template
{
private static $_instance;
public static function getInstance()
{
if (self::$_instance == NULL) {
self::$_instance = new self();
}
return self::$_instance;
}
public function init()
{
add_filter('vc_load_default_templates',array($this,'load_templates'));
add_filter('vc_get_all_templates',array($this,'add_templates_tab'));
add_filter('vc_templates_render_category', array(&$this, 'renderTemplateBlock'), 100);
}
public function add_templates_tab($data) {
$current_theme = wp_get_theme();
foreach ($data as &$cate) {
if ($cate['category'] === 'default_templates') {
$cate['category_weight'] = 1;
$cate['category_name'] = $current_theme['Name'];
}
}
return $data;
}
public function load_templates(){
return apply_filters('g5element_vc_load_templates', array());
}
public function load_template_categories(){
return apply_filters('g5element_vc_template_categories', array());
}
public function renderTemplateBlock($category) {
if ($category['category'] === 'default_templates') {
$html = '<div class="vc_col-md-2 g5element-templates-cat-wrap">';
$html .= '<div class="g5element-templates-cat-inner">';
$html .= $this->render_template_categories();
$html .= '</div>';
$html .= '</div>';
$html .= '<div class="vc_col-md-12 g5element-templates-wrap">';
$html .= '<div class="g5element-templates-inner">';
if (!empty($category['templates'])) {
foreach ($category['templates'] as $template) {
$html .= $this->renderTemplateItem($template);
}
}
$html .= '</div>';
$html.= '</div>';
$category['output'] = $html;
}
return $category;
}
public function render_template_categories() {
$categories = $this->load_template_categories();
$html = '<ul>';
foreach ($categories as $slug => $name) {
if ($slug === 'all') {
$html .= '<li class="active" data-filter="*">' . $name . '</li>';
} else {
$html.= '<li data-filter=".'. $slug .'">' . $name . '</li>';;
}
}
$html .= '</ul>';
return $html;
}
public function renderTemplateItem($template) {
$template_image_path = apply_filters('g5element_template_image_dir', array(
'dir' => G5CORE()->theme_dir("assets/images/templates/"),
'url' => G5CORE()->theme_url("assets/images/templates/")
));
$template_image_path_dir = $template_image_path['dir'];
$template_image_path_url = $template_image_path['url'];
$name = isset($template['name']) ? esc_html($template['name']) : esc_html(__('No title', 'g5-element'));
$template_id = esc_attr($template['unique_id']);
$template_id_hash = md5($template_id);
$template_name = esc_html($name);
$template_image = file_exists("{$template_image_path_dir}{$template['image']}.jpg") ? "{$template_image_path_url}{$template['image']}.jpg" : G5ELEMENT()->plugin_url('assets/images/templates.jpg');
$template_name_lower = esc_attr(vc_slugify($template_name));
$template_type = esc_attr(isset($template['type']) ? $template['type'] : 'custom');
$custom_class = esc_attr(isset($template['custom_class']) ? $template['custom_class'] : '');
$add_template_title = esc_attr('Add template', 'g5-element');
$output = <<< HTML
<div class="g5element-template-item vc_ui-template $custom_class"
data-template_id="$template_id"
data-template_id_hash="$template_id_hash"
data-category="$template_type"
data-template_unique_id="$template_id"
data-template_name="$template_name_lower"
data-template_type="$template_type"
data-vc-content=".vc_ui-template-content">
<div class="vc_ui-list-bar-item">
<div class="g5element-template-thumbnail">
<img src="$template_image" alt="$template_name"/>
</div>
<div class="g5element-template-item-name">
$template_name
</div>
<a data-template-handler="" title="$add_template_title" href="javascript:;" class="vc_ui-panel-template-download-button">
<i class="vc-composer-icon vc-c-icon-add"></i>
</a>
</div>
</div>
HTML;
return $output;
}
}
}
Back to Directory
File Manager