Пример #1
0
 /**
  * get meta query for filtering woocommerce posts. 
  */
 public static function get_meta_query($args)
 {
     $base = new Essential_Grid_Base();
     $regPriceFrom = $base->getVal($args, self::ARG_REGULAR_PRICE_FROM);
     $regPriceTo = $base->getVal($args, self::ARG_REGULAR_PRICE_TO);
     $salePriceFrom = $base->getVal($args, self::ARG_SALE_PRICE_FROM);
     $salePriceTo = $base->getVal($args, self::ARG_SALE_PRICE_TO);
     $inStockOnly = $base->getVal($args, self::ARG_IN_STOCK_ONLY);
     $featuredOnly = $base->getVal($args, self::ARG_FEATURED_ONLY);
     $arrQueries = array();
     //get regular price array
     if (!empty($regPriceFrom) || !empty($regPriceTo)) {
         $arrQueries[] = self::get_price_query($regPriceFrom, $regPriceTo, self::META_REGULAR_PRICE);
     }
     //get sale price array
     if (!empty($salePriceFrom) || !empty($salePriceTo)) {
         $arrQueries[] = self::get_price_query($salePriceFrom, $salePriceTo, self::META_SALE_PRICE);
     }
     if ($inStockOnly == 'true') {
         $query = array('key' => self::META_STOCK_STATUS, 'value' => 'instock');
         $arrQueries[] = $query;
     }
     if ($featuredOnly == 'true') {
         $query = array('key' => self::META_FEATURED, 'value' => 'yes');
         $arrQueries[] = $query;
     }
     $query = array();
     if (!empty($arrQueries)) {
         $query = array('meta_query' => $arrQueries);
     }
     return $query;
 }
Пример #2
0
 /**
  * echo global CSS with wrapper
  */
 public static function output_global_css_styles_wrapped()
 {
     $base = new Essential_Grid_Base();
     echo '<style type="text/css">';
     echo $base->compress_css(self::get_global_css_styles());
     echo '</style>' . "\n";
 }
 /**
  * Search all Grids and change the term IDs set in the selected terms if needed
  * @since: 2.1.0
  **/
 static function split_terms_fix($old_term_id, $new_term_id, $term_taxonomy_id, $taxonomy)
 {
     $base = new Essential_Grid_Base();
     $lang = array();
     if (Essential_Grid_Wpml::is_wpml_exists()) {
         $lang = icl_get_languages();
     }
     $grids = Essential_Grid::get_essential_grids();
     if (!empty($grids)) {
         foreach ($grids as $grid) {
             $selected = json_decode($grid->postparams, true);
             $post_category = $base->getVar($selected, 'post_category');
             $cat_tax = $base->getCatAndTaxData($post_category);
             $cats = array();
             if (!empty($cat_tax['cats'])) {
                 $cats = explode(',', $cat_tax['cats']);
             }
             $taxes = array('post_tag');
             if (!empty($cat_tax['tax'])) {
                 $taxes = explode(',', $cat_tax['tax']);
             }
             $cont = false;
             if (!empty($cats)) {
                 foreach ($cats as $cat) {
                     if ($old_term_id == $cat && in_array($taxonomy, $taxes)) {
                         //ID needs to be changed
                         foreach ($taxes as $t) {
                             //replace all occuring old term id with the new term id and then Save the Grid
                             $post_category = str_replace($t . '_' . $old_term_id, $t . '_' . $new_term_id, $post_category);
                         }
                         $selected['post_category'] = $post_category;
                         $grid->postparams = $selected;
                         $grid->params = json_decode($grid->params, true);
                         $grid->layers = json_decode($grid->layers, true);
                         $new_grid = (array) $grid;
                         //cast to array as update_create_grid expects an array
                         Essential_Grid_Admin::update_create_grid($new_grid);
                         //now delete cache of the Grid so that changes take effect immediately
                         if (!empty($lang)) {
                             foreach ($lang as $code => $val) {
                                 delete_transient('ess_grid_trans_query_' . $grid->id . $val['language_code']);
                                 delete_transient('ess_grid_trans_full_grid_' . $grid->id . $val['language_code']);
                             }
                         } else {
                             delete_transient('ess_grid_trans_query_' . $grid->id);
                             delete_transient('ess_grid_trans_full_grid_' . $grid->id);
                         }
                         $cont = true;
                     }
                     if ($cont == true) {
                         break;
                     }
                 }
             }
         }
     }
 }
Пример #4
0
 public function export_grids($export_grids)
 {
     $return_grids = array();
     if ($export_grids !== false && !empty($export_grids)) {
         $c_grid = new Essential_Grid();
         $base = new Essential_Grid_Base();
         $item_skin = new Essential_Grid_Item_Skin();
         $grids = $c_grid->get_essential_grids();
         if (!empty($grids)) {
             foreach ($export_grids as $e_grid_id) {
                 foreach ($grids as $grid) {
                     $grid = (array) $grid;
                     if ($e_grid_id == $grid['id']) {
                         //change categories/tags id to slug
                         $check = json_decode($grid['postparams'], true);
                         if (isset($check['post_category']) && !empty($check['post_category'])) {
                             $slug_cats = array();
                             $the_cats = explode(',', $check['post_category']);
                             foreach ($the_cats as $cat) {
                                 $raw = explode('_', $cat);
                                 $catSlug = $raw[count($raw) - 1];
                                 unset($raw[count($raw) - 1]);
                                 $cat = implode('_', $raw);
                                 $category = $base->get_categories_by_ids((array) $catSlug, $cat);
                                 foreach ($category as $cat_obj) {
                                     $slug_cats[] = $cat . '_' . $cat_obj->slug;
                                 }
                             }
                             $check['post_category'] = implode(',', $slug_cats);
                             $grid['postparams'] = json_encode($check);
                         }
                         //change choosen skinid to skinhandle
                         $check = json_decode($grid['params'], true);
                         if (isset($check['entry-skin']) && !empty($check['entry-skin']) && intval($check['entry-skin']) != 0) {
                             $skin = $item_skin->get_handle_by_id($check['entry-skin']);
                             if (!empty($skin)) {
                                 $check['entry-skin'] = $skin['handle'];
                             }
                             $grid['params'] = json_encode($check);
                         }
                         $return_grids[] = $grid;
                         break;
                     }
                 }
             }
         }
     }
     return $return_grids;
 }
Пример #5
0
 /**
  * get list of allowed things on meta
  */
 public function get_allowed_meta()
 {
     $base = new Essential_Grid_Base();
     $transitions_media = $base->get_hover_animations(true);
     //true will get with in/out
     return array(array('name' => array('handle' => 'color', 'text' => __('Font Color', EG_TEXTDOMAIN)), 'type' => 'color', 'default' => '#FFFFFF', 'container' => 'style', 'hover' => 'true'), array('name' => array('handle' => 'font-style', 'text' => __('Font Style', EG_TEXTDOMAIN)), 'type' => 'select', 'default' => 'normal', 'values' => array('normal' => __('Normal', EG_TEXTDOMAIN), 'italic' => __('Italic', EG_TEXTDOMAIN)), 'container' => 'style', 'hover' => 'true'), array('name' => array('handle' => 'text-decoration', 'text' => __('Text Decoration', EG_TEXTDOMAIN)), 'type' => 'select', 'default' => 'none', 'values' => array('none' => __('None', EG_TEXTDOMAIN), 'underline' => __('Underline', EG_TEXTDOMAIN), 'overline' => __('Overline', EG_TEXTDOMAIN), 'line-through' => __('Line Through', EG_TEXTDOMAIN)), 'container' => 'style', 'hover' => 'true'), array('name' => array('handle' => 'text-transform', 'text' => __('Text Transform', EG_TEXTDOMAIN)), 'type' => 'select', 'default' => 'none', 'values' => array('none' => __('None', EG_TEXTDOMAIN), 'capitalize' => __('Capitalize', EG_TEXTDOMAIN), 'uppercase' => __('Uppercase', EG_TEXTDOMAIN), 'lowercase' => __('Lowercase', EG_TEXTDOMAIN)), 'container' => 'style', 'hover' => 'true'), array('name' => array('handle' => 'border-color', 'text' => __('Border Color', EG_TEXTDOMAIN)), 'type' => 'color', 'default' => '#FFFFFF', 'container' => 'style', 'hover' => 'true'), array('name' => array('handle' => 'border-style', 'text' => __('Border Style', EG_TEXTDOMAIN)), 'type' => 'select', 'default' => 'none', 'values' => array('none' => __('None', EG_TEXTDOMAIN), 'solid' => __('solid', EG_TEXTDOMAIN), 'dotted' => __('dotted', EG_TEXTDOMAIN), 'dashed' => __('dashed', EG_TEXTDOMAIN), 'double' => __('double', EG_TEXTDOMAIN)), 'container' => 'style', 'hover' => 'true'), array('name' => array('handle' => 'background', 'text' => __('Background Color', EG_TEXTDOMAIN)), 'type' => 'text', 'default' => 'repeat center center #FFFFFF', 'container' => 'style', 'hover' => 'true'), array('name' => array('handle' => 'box-shadow', 'text' => __('Box Shadow', EG_TEXTDOMAIN)), 'type' => 'text', 'default' => '0px 0px 0px 0px #000000', 'container' => 'style', 'hover' => 'true'), array('name' => array('handle' => 'transition', 'text' => __('Transition', EG_TEXTDOMAIN)), 'type' => 'select', 'default' => 'fade', 'values' => $transitions_media, 'container' => 'anim'), array('name' => array('handle' => 'transition-delay', 'text' => __('Transition Delay', EG_TEXTDOMAIN)), 'type' => 'number', 'default' => '0', 'values' => array('0', '60', '1'), 'container' => 'anim'), array('name' => array('handle' => 'cover-bg-color', 'text' => __('Cover BG Color', EG_TEXTDOMAIN)), 'type' => 'color', 'default' => '#FFFFFF', 'container' => 'layout'), array('name' => array('handle' => 'cover-bg-opacity', 'text' => __('Cover BG Opacity', EG_TEXTDOMAIN)), 'type' => 'number', 'default' => '100', 'container' => 'layout'), array('name' => array('handle' => 'item-bg-color', 'text' => __('Item BG Color', EG_TEXTDOMAIN)), 'type' => 'color', 'default' => '#FFFFFF', 'container' => 'layout'), array('name' => array('handle' => 'content-bg-color', 'text' => __('Content BG Color', EG_TEXTDOMAIN)), 'type' => 'color', 'default' => '#FFFFFF', 'container' => 'layout'));
 }
Пример #6
0
 /**
  * replace all metas with corresponding text
  */
 public function replace_all_meta_in_text($post_id, $text)
 {
     if (trim($text) === '' || intval($post_id) === 0) {
         return '';
     }
     $base = new Essential_Grid_Base();
     $meta_link = new Essential_Grid_Meta_Linking();
     $cmeta = $this->get_all_meta();
     //process meta tags:
     $arr_matches = array();
     preg_match_all("/%[^%]*%/", $text, $arr_matches);
     if (!empty($arr_matches)) {
         $my_post = get_post($post_id, ARRAY_A);
         foreach ($arr_matches as $matches) {
             if (is_array($matches)) {
                 foreach ($matches as $match) {
                     $meta = trim(str_replace('%', '', $match));
                     $meta_value = get_post_meta($post_id, $meta, true);
                     if (!empty($cmeta)) {
                         foreach ($cmeta as $me) {
                             if ('eg-' . $me['handle'] == $meta) {
                                 if ($me['type'] == 'image') {
                                     if (intval($meta_value) > 0) {
                                         //get URL to Image
                                         $img = wp_get_attachment_image_src($meta_value, 'full');
                                         if ($img !== false) {
                                             $meta_value = $img[0];
                                         } else {
                                             $meta_value = '';
                                         }
                                     } else {
                                         $meta_value = '';
                                     }
                                 }
                                 if ($meta_value == '' && isset($me['default'])) {
                                     $meta_value = $me['default'];
                                 }
                                 break;
                             }
                         }
                     }
                     //check woocommerce
                     if (Essential_Grid_Woocommerce::is_woo_exists()) {
                         $wc_text = Essential_Grid_Woocommerce::get_value_by_meta($post_id, $meta);
                         if ($wc_text !== '') {
                             $meta_value = $wc_text;
                         }
                     }
                     if (empty($meta_value) && !empty($my_post)) {
                         //try to get from post
                         switch ($meta) {
                             //Post elements
                             case 'post_url':
                                 $post_id = $base->getVar($my_post, 'ID', '');
                                 $meta_value = get_permalink($post_id);
                                 break;
                             case 'post_id':
                                 $meta_value = $base->getVar($my_post, 'ID', '');
                                 break;
                             case 'title':
                                 $meta_value = $base->getVar($my_post, 'post_title', '');
                                 break;
                             case 'excerpt':
                                 $meta_value = trim($base->getVar($my_post, 'post_excerpt'));
                                 if (empty($meta_value)) {
                                     $meta_value = trim($base->getVar($my_post, 'post_content'));
                                 }
                                 $meta_value = strip_tags($meta_value);
                                 //,"<b><br><br/><i><strong><small>"
                                 break;
                             case 'meta':
                                 $m = new Essential_Grid_Meta();
                                 $meta_value = $m->get_meta_value_by_handle($my_post['ID'], $meta);
                                 break;
                             case 'alias':
                                 $meta_value = $base->getVar($my_post, 'post_name');
                                 break;
                             case 'content':
                                 $meta_value = $base->getVar($my_post, 'post_content');
                                 break;
                             case 'link':
                                 $meta_value = get_permalink($my_post['ID']);
                                 break;
                             case 'date':
                                 $postDate = $base->getVar($my_post, "post_date_gmt");
                                 $meta_value = $base->convert_post_date($postDate);
                                 break;
                             case 'date_modified':
                                 $dateModified = $base->getVar($my_post, "post_modified");
                                 $meta_value = $base->convert_post_date($dateModified);
                                 break;
                             case 'author_name':
                                 $authorID = $base->getVar($my_post, 'post_author');
                                 $meta_value = get_the_author_meta('display_name', $authorID);
                                 break;
                             case 'num_comments':
                                 $meta_value = $base->getVar($my_post, 'comment_count');
                                 break;
                             case 'cat_list':
                                 $use_taxonomies = false;
                                 $postCatsIDs = $base->getVar($my_post, 'post_category');
                                 if (empty($postCatsIDs) && isset($my_post['post_type'])) {
                                     $postCatsIDs = array();
                                     $obj = get_object_taxonomies($my_post['post_type']);
                                     if (!empty($obj) && is_array($obj)) {
                                         foreach ($obj as $tax) {
                                             $use_taxonomies[] = $tax;
                                             $new_terms = get_the_terms($my_post['ID'], $tax);
                                             if (is_array($new_terms) && !empty($new_terms)) {
                                                 foreach ($new_terms as $term) {
                                                     $postCatsIDs[$term->term_id] = $term->term_id;
                                                 }
                                             }
                                         }
                                     }
                                 }
                                 $meta_value = $base->get_categories_html_list($postCatsIDs, true, ',', $use_taxonomies);
                                 break;
                             case 'tag_list':
                                 $meta_value = $base->get_tags_html_list($my_post['ID']);
                                 break;
                             default:
                                 $meta_value = apply_filters('essgrid_post_meta_content', $meta_value, $meta, $my_post['ID'], $my_post);
                                 break;
                                 break;
                         }
                         if (empty($meta_value)) {
                             //check if its linking
                             $meta_value = $meta_link->get_link_meta_value_by_handle($my_post['ID'], $meta);
                         }
                     }
                     $text = str_replace($match, $meta_value, $text);
                 }
             }
         }
     }
     return $text;
 }
Пример #7
0
 public static function output_navigation_skins()
 {
     $base = new Essential_Grid_Base();
     $skins = self::get_essential_navigation_skins();
     $css = '';
     if (!empty($skins)) {
         foreach ($skins as $skin) {
             $css .= '<style class="navigation-skin-css-' . $skin['id'] . '" type="text/css">';
             $css .= $base->compress_css($skin['css']);
             $css .= '</style>' . "\n";
         }
     }
     return $css;
 }
Пример #8
0
 /**
  * widget output
  */
 public function widget($args, $instance)
 {
     $grid_id = $instance["ess_grid"];
     $title = @$instance["ess_grid_title"];
     if (empty($grid_id)) {
         return false;
     }
     $base = new Essential_Grid_Base();
     $grid = new Essential_Grid();
     $grids = $grid->get_grids_short_widgets();
     if (!isset($grids[$grid_id])) {
         return false;
     }
     $grid_handle = $grids[$grid_id];
     //widget output
     $beforeWidget = $args["before_widget"];
     $afterWidget = $args["after_widget"];
     $beforeTitle = $args["before_title"];
     $afterTitle = $args["after_title"];
     echo $beforeWidget;
     if (!empty($title)) {
         echo $beforeTitle . $title . $afterTitle;
     }
     if ($base->is_shortcode_with_handle_exist($grid_handle)) {
         $eg_nav = new Essential_Grid_Navigation();
         $eg_nav->output_cart();
     }
     echo $afterWidget;
 }
Пример #9
0
function eg_filter_tab_function($id, $params)
{
    global $grid;
    global $categories;
    global $postTypesWithCats;
    $base = new Essential_Grid_Base();
    ?>
								<div class="eg-filter-options-wrap" style="display:inline-block">
									<div class="eg-filter-header-block"><i class="eg-icon-megaphone"></i><?php 
    _e('Filter -', EG_TEXTDOMAIN);
    ?>
 <span class="filter-header-id"><?php 
    echo $id;
    ?>
</span></div>
									<p class="eg-filter-label"><?php 
    _e('Filter "All" Text', EG_TEXTDOMAIN);
    ?>
</p>
									<p class="eg-filter-option-field">
										<input type="text" name="filter-all-text-<?php 
    echo $id;
    ?>
" data-origname="filter-all-text-#NR" class="eg-tooltip-wrap" title="<?php 
    _e('Visible Title on All Filter Button.', EG_TEXTDOMAIN);
    ?>
" value="<?php 
    echo $base->getVar($params, 'filter-all-text-' . $id, __('Filter - All', EG_TEXTDOMAIN));
    ?>
" class="firstinput">
										<span class="eg-remove-filter-tab" style="display: none;"><i class="eg-icon-cancel"></i></span>
									</p>
									<p class="eg-filter-label"><?php 
    _e('Layout Option', EG_TEXTDOMAIN);
    ?>
</p>
									<p class="eg-filter-option-field">
										<?php 
    $filter_listing = $base->getVar($params, 'filter-listing-' . $id, 'list');
    ?>
										<select class="firstinput" name="filter-listing-<?php 
    echo $id;
    ?>
" data-origname="filter-listing-#NR">
											<option value="list" <?php 
    checked($filter_listing, 'list');
    ?>
><?php 
    _e('In Line', EG_TEXTDOMAIN);
    ?>
</option>
											<option value="dropdown" <?php 
    selected($filter_listing, 'dropdown');
    ?>
><?php 
    _e('Dropdown', EG_TEXTDOMAIN);
    ?>
</option>
										</select>
									</p>
									<p class="eg-filter-label"><?php 
    _e('Dropdown Start Text', EG_TEXTDOMAIN);
    ?>
</p>
									<p class="filter-only-if-dropdown eg-filter-option-field">
										<?php 
    $filter_dropdown_text = $base->getVar($params, 'filter-dropdown-text-' . $id, __('Filter Categories', EG_TEXTDOMAIN));
    ?>
										<input class="firstinput" type="text" data-origname="filter-dropdown-text-#NR" name="filter-dropdown-text-<?php 
    echo $id;
    ?>
" title="<?php 
    _e('Default Text on the Filter Dropdown List.', EG_TEXTDOMAIN);
    ?>
" value="<?php 
    echo $filter_dropdown_text;
    ?>
" />
									</p>
									<p class="eg-filter-label"><?php 
    _e('Available Filters in Group', EG_TEXTDOMAIN);
    ?>
</p>
									<div class="filter-only-for-post">
										<?php 
    $filter_selected = $base->getVar($params, 'filter-selected-' . $id, '');
    ?>
										<div class="eg-media-source-order-wrap eg-filter-selected-order-wrap-<?php 
    echo $id;
    ?>
">
											<?php 
    if (!empty($filter_selected)) {
        if (!isset($params['filter-selected-' . $id])) {
            //we are either a new Grid or old Grid that had not this option (since 1.1.0)
            if ($grid !== false) {
                //set the values
                $use_cat = @$categories;
            } else {
                $use_cat = @$postTypesWithCats['post'];
            }
            if (!empty($use_cat)) {
                foreach ($use_cat as $handle => $cat) {
                    if (strpos($handle, 'option_disabled_') !== false) {
                        continue;
                    }
                    ?>
															<div class="eg-media-source-order revblue button-primary">
																<span style="float:left"><?php 
                    echo $cat;
                    ?>
</span>														
																<input class="eg-get-val eg-filter-input eg-filter-selected-<?php 
                    echo $id;
                    ?>
" type="checkbox" name="filter-selected-<?php 
                    echo $id;
                    ?>
[]" data-origname="filter-selected-#NR[]" checked="checked" value="<?php 
                    echo $handle;
                    ?>
" />
																<div style="clear:both"></div>
															</div>
															<?php 
                }
            }
        } else {
            foreach ($filter_selected as $fs) {
                ?>
														<div class="eg-media-source-order revblue button-primary">
															<span style="float:left"><?php 
                echo $fs;
                ?>
</span>														
															<input class="eg-get-val eg-filter-input eg-filter-selected-<?php 
                echo $id;
                ?>
" type="checkbox" name="filter-selected-<?php 
                echo $id;
                ?>
[]" data-origname="filter-selected-#NR[]" checked="checked" value="<?php 
                echo $fs;
                ?>
" />
															<div style="clear:both"></div>
														</div>
														<?php 
            }
        }
    }
    ?>
										</div>
									</div>
								</div>
								<?php 
}
Пример #10
0
/**
 * Represents the view for the metabox in post / pages
 *
 * @package   Essential_Grid
 * @author    ThemePunch <*****@*****.**>
 * @link      http://www.themepunch.com/essential/
 * @copyright 2014 ThemePunch
 */
if (!defined('ABSPATH')) {
    exit;
}
if (!isset($post)) {
    return false;
}
//not called as it should be
$base = new Essential_Grid_Base();
$item_skin = new Essential_Grid_Item_Skin();
$item_elements = new Essential_Grid_Item_Element();
$meta = new Essential_Grid_Meta();
$values = get_post_custom($post->ID);
$eg_sources_html5_mp4 = isset($values['eg_sources_html5_mp4']) ? esc_attr($values['eg_sources_html5_mp4'][0]) : "";
$eg_sources_html5_ogv = isset($values['eg_sources_html5_ogv']) ? esc_attr($values['eg_sources_html5_ogv'][0]) : "";
$eg_sources_html5_webm = isset($values['eg_sources_html5_webm']) ? esc_attr($values['eg_sources_html5_webm'][0]) : "";
$eg_vimeo_ratio = isset($values['eg_vimeo_ratio']) ? esc_attr($values['eg_vimeo_ratio'][0]) : "0";
$eg_youtube_ratio = isset($values['eg_youtube_ratio']) ? esc_attr($values['eg_youtube_ratio'][0]) : "0";
$eg_wistia_ratio = isset($values['eg_wistia_ratio']) ? esc_attr($values['eg_wistia_ratio'][0]) : "0";
$eg_html5_ratio = isset($values['eg_html5_ratio']) ? esc_attr($values['eg_html5_ratio'][0]) : "0";
$eg_soundcloud_ratio = isset($values['eg_soundcloud_ratio']) ? esc_attr($values['eg_soundcloud_ratio'][0]) : "0";
$eg_sources_youtube = isset($values['eg_sources_youtube']) ? esc_attr($values['eg_sources_youtube'][0]) : "";
$eg_sources_wistia = isset($values['eg_sources_wistia']) ? esc_attr($values['eg_sources_wistia'][0]) : "";
$eg_sources_vimeo = isset($values['eg_sources_vimeo']) ? esc_attr($values['eg_sources_vimeo'][0]) : "";
Пример #11
0
 /**
  * valdiate that wpml exists
  */
 private static function validate_wpml_exists()
 {
     if (!self::is_wpml_exists()) {
         Essential_Grid_Base::throw_error(__("The wpml plugin don't exists", EG_TEXTDOMAIN));
     }
 }
Пример #12
0
$meta = new Essential_Grid_Meta();
$isCreate = $base->getGetVar('create', 'true');
$title = __('Create New Ess. Grid', EG_TEXTDOMAIN);
$save = __('Save Grid', EG_TEXTDOMAIN);
$layers = false;
if (intval($isCreate) > 0) {
    //currently editing
    $grid = Essential_Grid::get_essential_grid_by_id(intval($isCreate));
    if (!empty($grid)) {
        $title = __('Settings', EG_TEXTDOMAIN);
        $layers = $grid['layers'];
    }
}
$postTypesWithCats = $base->getPostTypesWithCatsForClient();
$jsonTaxWithCats = $base->jsonEncodeForClientSide($postTypesWithCats);
$base = new Essential_Grid_Base();
$pages = get_pages(array('sort_column' => 'post_name'));
$post_elements = $base->getPostTypesAssoc();
$postTypes = $base->getVar($grid['postparams'], 'post_category', 'post');
$categories = $base->setCategoryByPostTypes($postTypes, $postTypesWithCats);
$selected_pages = explode(',', $base->getVar($grid['postparams'], 'selected_pages', '-1', 's'));
$columns = $base->getVar($grid['params'], 'columns', '');
$columns = $base->set_basic_colums($columns);
$columns_width = $base->getVar($grid['params'], 'columns-width', '');
$columns_width = $base->set_basic_colums_width($columns_width);
$columns_height = $base->getVar($grid['params'], 'columns-height', '');
$columns_height = $base->set_basic_colums_height($columns_height);
$columns_advanced[] = $base->getVar($grid['params'], 'columns-advanced-rows-0', '');
$columns_advanced[] = $base->getVar($grid['params'], 'columns-advanced-rows-1', '');
$columns_advanced[] = $base->getVar($grid['params'], 'columns-advanced-rows-2', '');
$columns_advanced[] = $base->getVar($grid['params'], 'columns-advanced-rows-3', '');
Пример #13
0
 public function import_global_styles($import_global_styles, $check_append = true)
 {
     $base = new Essential_Grid_Base();
     $c_css = new Essential_Grid_Global_Css();
     $append = true;
     if ($check_append) {
         //check in $_POST if append or overwrite
         $do = $base->getVar($this->overwrite_data, 'global-styles-overwrite', 'append');
         $append = $do == 'append' ? true : false;
     }
     if ($append) {
         //append
         $global_styles = $c_css->get_global_css_styles();
         $import_global_styles = $global_styles . "\n" . $import_global_styles;
     }
     $c_css->set_global_css_styles($import_global_styles);
 }
Пример #14
0
<?php

/**
 * Panel to the search options.
 * 
 * @package   Essential_Grid
 * @author    ThemePunch <*****@*****.**>
 * @link      http://www.themepunch.com/essential/
 * @copyright 2014 ThemePunch
 * @since: 2.0
 */
$settings = get_option('esg-search-settings', array('settings' => array(), 'global' => array(), 'shortcode' => array()));
$settings = Essential_Grid_Base::stripslashes_deep($settings);
$base = new Essential_Grid_Base();
$grids = Essential_Grid::get_grids_short();
$my_skins = array('light' => __('Light', EG_TEXTDOMAIN), 'dark' => __('Dark', EG_TEXTDOMAIN));
$my_skins = apply_filters('essgrid_modify_search_skins', $my_skins);
?>
<h2 class="topheader"><?php 
_e('Search Settings', EG_TEXTDOMAIN);
?>
</h2>

<div id="eg-grid-search-wrapper">
	<ul class="es-grid-search-tabs">
		<li><a href="#eg-search-settings-wrap"><?php 
_e('Global Settings', EG_TEXTDOMAIN);
?>
</a></li>
		<li><a href="#eg-shortcode-search-wrap"><?php 
_e('ShortCode Search', EG_TEXTDOMAIN);
 /**
  * Handle Ajax Requests
  */
 public static function on_ajax_action()
 {
     try {
         $token = self::getPostVar('token', false);
         //verify the token
         $isVerified = wp_verify_nonce($token, 'Essential_Grid_actions');
         $error = false;
         if ($isVerified) {
             $data = self::getPostVar("data", false);
             switch (self::getPostVar("client_action", false)) {
                 case 'add_google_fonts':
                     $f = new ThemePunch_Fonts();
                     $result = $f->add_new_font($data);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Font successfully created!", EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getFontsUrl()));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'remove_google_fonts':
                     if (!isset($data['handle'])) {
                         Essential_Grid::ajaxResponseError(__('Font not found', EG_TEXTDOMAIN), false);
                     }
                     $f = new ThemePunch_Fonts();
                     $result = $f->remove_font_by_handle($data['handle']);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Font successfully removed!", EG_TEXTDOMAIN), array('data' => $result));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'edit_google_fonts':
                     if (!isset($data['handle'])) {
                         Essential_Grid::ajaxResponseError(__('No handle given', EG_TEXTDOMAIN), false);
                     }
                     if (!isset($data['url'])) {
                         Essential_Grid::ajaxResponseError(__('No parameters given', EG_TEXTDOMAIN), false);
                     }
                     $f = new ThemePunch_Fonts();
                     $result = $f->edit_font_by_handle($data);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Font successfully changed!", EG_TEXTDOMAIN), array('data' => $result));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'add_custom_meta':
                     $m = new Essential_Grid_Meta();
                     $result = $m->add_new_meta($data);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Meta successfully created!", EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getSubViewUrl(Essential_Grid_Admin::VIEW_SUB_CUSTOM_META_AJAX)));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'remove_custom_meta':
                     if (!isset($data['handle'])) {
                         Essential_Grid::ajaxResponseError(__('Meta not found', EG_TEXTDOMAIN), false);
                     }
                     $m = new Essential_Grid_Meta();
                     $result = $m->remove_meta_by_handle($data['handle']);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Meta successfully removed!", EG_TEXTDOMAIN), array('data' => $result));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'edit_custom_meta':
                     if (!isset($data['handle'])) {
                         Essential_Grid::ajaxResponseError(__('No handle given', EG_TEXTDOMAIN), false);
                     }
                     if (!isset($data['name'])) {
                         Essential_Grid::ajaxResponseError(__('No name given', EG_TEXTDOMAIN), false);
                     }
                     $m = new Essential_Grid_Meta();
                     $result = $m->edit_meta_by_handle($data);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Meta successfully changed!", EG_TEXTDOMAIN), array('data' => $result));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'add_link_meta':
                     $m = new Essential_Grid_Meta_Linking();
                     $result = $m->add_new_link_meta($data);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Meta successfully created!", EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getSubViewUrl(Essential_Grid_Admin::VIEW_SUB_CUSTOM_META_AJAX)));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'remove_link_meta':
                     if (!isset($data['handle'])) {
                         Essential_Grid::ajaxResponseError(__('Meta not found', EG_TEXTDOMAIN), false);
                     }
                     $m = new Essential_Grid_Meta_Linking();
                     $result = $m->remove_link_meta_by_handle($data['handle']);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Meta successfully removed!", EG_TEXTDOMAIN), array('data' => $result));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'edit_link_meta':
                     if (!isset($data['handle'])) {
                         Essential_Grid::ajaxResponseError(__('No handle given', EG_TEXTDOMAIN), false);
                     }
                     if (!isset($data['name'])) {
                         Essential_Grid::ajaxResponseError(__('No name given', EG_TEXTDOMAIN), false);
                     }
                     if (!isset($data['original'])) {
                         Essential_Grid::ajaxResponseError(__('No original given', EG_TEXTDOMAIN), false);
                     }
                     $m = new Essential_Grid_Meta_Linking();
                     $result = $m->edit_link_meta_by_handle($data);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Meta successfully changed!", EG_TEXTDOMAIN), array('data' => $result));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'add_widget_area':
                     $wa = new Essential_Grid_Widget_Areas();
                     $result = $wa->add_new_sidebar($data);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Widget Area successfully created!", EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getSubViewUrl(Essential_Grid_Admin::VIEW_SUB_WIDGET_AREA_AJAX)));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'edit_widget_area':
                     if (!isset($data['handle'])) {
                         Essential_Grid::ajaxResponseError(__('No handle given', EG_TEXTDOMAIN), false);
                     }
                     if (!isset($data['name'])) {
                         Essential_Grid::ajaxResponseError(__('No name given', EG_TEXTDOMAIN), false);
                     }
                     $wa = new Essential_Grid_Widget_Areas();
                     $result = $wa->edit_widget_area_by_handle($data);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Widget Area successfully changed!", EG_TEXTDOMAIN), array('data' => $result));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'remove_widget_area':
                     if (!isset($data['handle'])) {
                         Essential_Grid::ajaxResponseError(__('Widget Area not found', EG_TEXTDOMAIN), false);
                     }
                     $wa = new Essential_Grid_Widget_Areas();
                     $result = $wa->remove_widget_area_by_handle($data['handle']);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Widget Area successfully removed!", EG_TEXTDOMAIN), array('data' => $result));
                     } else {
                         Essential_Grid::ajaxResponseError($result, false);
                     }
                     break;
                 case 'get_preview_html_markup':
                     //add wpml transient
                     $lang_code = '';
                     if (Essential_Grid_Wpml::is_wpml_exists()) {
                         $lang_code = Essential_Grid_Wpml::get_current_lang_code();
                     }
                     if (isset($data['id'])) {
                         delete_transient('ess_grid_trans_query_' . $data['id'] . $lang_code);
                         //delete cache
                     }
                     $result = Essential_Grid_Base::output_demo_skin_html($data);
                     if (isset($result['error'])) {
                         Essential_Grid::ajaxResponseData($result);
                     } else {
                         Essential_Grid::ajaxResponseData(array("data" => array('html' => $result['html'], 'preview' => @$result['preview'])));
                     }
                     break;
                     /* //TP: CHUNK
                     			case 'get_preview_html_markup_chunk': //only for custom grid
                     				$grid = new Essential_Grid();
                     				$grid->init_by_data($data);
                     				
                     				$html = '';
                     				
                     				if($grid->is_custom_grid()){
                     					ob_start();
                     					$grid->output_by_custom('custom', true);
                     					$html = ob_get_contents();
                     					ob_clean();
                     					ob_end_clean();
                     				}
                     				$order_id = self::getPostVar("order_id", false);
                     				
                     				Essential_Grid::ajaxResponseData(array("data"=>array('preview' => $html, 'order_id' => $order_id)));
                     				
                     			break; */
                 /* //TP: CHUNK
                 			case 'get_preview_html_markup_chunk': //only for custom grid
                 				$grid = new Essential_Grid();
                 				$grid->init_by_data($data);
                 				
                 				$html = '';
                 				
                 				if($grid->is_custom_grid()){
                 					ob_start();
                 					$grid->output_by_custom('custom', true);
                 					$html = ob_get_contents();
                 					ob_clean();
                 					ob_end_clean();
                 				}
                 				$order_id = self::getPostVar("order_id", false);
                 				
                 				Essential_Grid::ajaxResponseData(array("data"=>array('preview' => $html, 'order_id' => $order_id)));
                 				
                 			break; */
                 case 'save_search_settings':
                     if (!empty($data)) {
                         update_option('esg-search-settings', $data);
                     }
                     Essential_Grid::ajaxResponseSuccess(__("Search Settings succesfully saved!", EG_TEXTDOMAIN));
                     break;
                 case 'update_general_settings':
                     $result = self::savePluginPermission($data['permission']);
                     $cur_query = get_option('tp_eg_query_type', 'wp_query');
                     update_option('tp_eg_output_protection', @$data['protection']);
                     update_option('tp_eg_tooltips', @$data['tooltips']);
                     update_option('tp_eg_wait_for_fonts', @$data['wait_for_fonts']);
                     update_option('tp_eg_js_to_footer', @$data['js_to_footer']);
                     update_option('tp_eg_use_cache', @$data['use_cache']);
                     update_option('tp_eg_query_type', @$data['query_type']);
                     update_option('tp_eg_enable_log', @$data['enable_log']);
                     update_option('tp_eg_use_lightbox', @$data['use_lightbox']);
                     if (@$data['use_lightbox'] === 'jackbox') {
                         Essential_Grid_Jackbox::enable_jackbox();
                     } else {
                         Essential_Grid_Jackbox::disable_jackbox();
                     }
                     if ($cur_query !== $data['query_type']) {
                         //delete cache
                         $lang = array();
                         if (Essential_Grid_Wpml::is_wpml_exists()) {
                             $lang = icl_get_languages();
                         }
                         $grids = Essential_Grid::get_essential_grids();
                         if (!empty($grids)) {
                             foreach ($grids as $grid) {
                                 if (!empty($lang)) {
                                     foreach ($lang as $code => $val) {
                                         delete_transient('ess_grid_trans_query_' . $grid->id . $val['language_code']);
                                         delete_transient('ess_grid_trans_full_grid_' . $grid->id . $val['language_code']);
                                     }
                                 } else {
                                     delete_transient('ess_grid_trans_query_' . $grid->id);
                                     delete_transient('ess_grid_trans_full_grid_' . $grid->id);
                                 }
                             }
                         }
                     }
                     if ($result !== true) {
                         $error = __("Global Settings did not change!", EG_TEXTDOMAIN);
                     } else {
                         Essential_Grid::ajaxResponseSuccess(__("Global Settings succesfully saved!", EG_TEXTDOMAIN), $result);
                     }
                     break;
                 case 'update_create_grid':
                     $result = self::update_create_grid($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         $lang = array();
                         if (Essential_Grid_Wpml::is_wpml_exists()) {
                             $lang = icl_get_languages();
                         }
                         if (isset($data['id']) && intval($data['id']) > 0) {
                             if (!empty($lang)) {
                                 foreach ($lang as $code => $val) {
                                     delete_transient('ess_grid_trans_query_' . $data['id'] . $val['language_code']);
                                     //delete cache
                                     delete_transient('ess_grid_trans_full_grid_' . $data['id'] . $val['language_code']);
                                     //delete cache
                                 }
                             } else {
                                 delete_transient('ess_grid_trans_query_' . $data['id']);
                                 //delete cache
                                 delete_transient('ess_grid_trans_full_grid_' . $data['id']);
                                 //delete cache
                             }
                             Essential_Grid::ajaxResponseSuccess(__("Grid successfully saved/changed!", EG_TEXTDOMAIN), $result);
                         } else {
                             Essential_Grid::ajaxResponseSuccess(__("Grid successfully saved/changed!", EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getViewUrl(Essential_Grid_Admin::VIEW_OVERVIEW)));
                         }
                     }
                     break;
                 case 'delete_grid':
                     $result = self::delete_grid_by_id($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         Essential_Grid::ajaxResponseSuccess(__("Grid deleted", EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getViewUrl(Essential_Grid_Admin::VIEW_OVERVIEW)));
                     }
                     break;
                 case 'duplicate_grid':
                     $result = self::duplicate_grid_by_id($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         Essential_Grid::ajaxResponseSuccess(__("Grid duplicated", EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getViewUrl(Essential_Grid_Admin::VIEW_OVERVIEW)));
                     }
                     break;
                 case 'update_create_item_skin':
                     $result = Essential_Grid_Item_Skin::update_save_item_skin($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         if (isset($data['id']) && intval($data['id']) > 0) {
                             Essential_Grid::ajaxResponseSuccess(__("Item Skin changed", EG_TEXTDOMAIN), array('data' => $result));
                         } else {
                             Essential_Grid::ajaxResponseSuccess(__("Item Skin created/changed", EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getViewUrl("", "", 'essential-' . Essential_Grid_Admin::VIEW_SUB_ITEM_SKIN_OVERVIEW)));
                         }
                     }
                     break;
                 case 'update_custom_css':
                     if (isset($data['global_css'])) {
                         Essential_Grid_Global_Css::set_global_css_styles($data['global_css']);
                         Essential_Grid::ajaxResponseSuccess(__("CSS saved!", EG_TEXTDOMAIN), '');
                     } else {
                         $error = __("No CSS Received", EG_TEXTDOMAIN);
                     }
                     break;
                 case 'delete_item_skin':
                     $result = Essential_Grid_Item_Skin::delete_item_skin_by_id($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         Essential_Grid::ajaxResponseSuccess(__("Item Skin deleted", EG_TEXTDOMAIN), array('data' => $result));
                     }
                     break;
                 case 'duplicate_item_skin':
                     $result = Essential_Grid_Item_Skin::duplicate_item_skin_by_id($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         Essential_Grid::ajaxResponseSuccess(__("Item Skin duplicated", EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getViewUrl("", "", 'essential-' . Essential_Grid_Admin::VIEW_SUB_ITEM_SKIN_OVERVIEW)));
                     }
                     break;
                 case 'star_item_skin':
                     $result = Essential_Grid_Item_Skin::star_item_skin_by_id($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         Essential_Grid::ajaxResponseSuccess(__("Favorite Changed", EG_TEXTDOMAIN), array('data' => $result));
                     }
                     break;
                 case 'update_create_item_element':
                     $result = Essential_Grid_Item_Element::update_create_essential_item_element($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         Essential_Grid::ajaxResponseSuccess(__("Item Element created/changed", EG_TEXTDOMAIN), array('data' => $result));
                     }
                     break;
                 case 'check_item_element_existence':
                     $result = Essential_Grid_Item_Element::check_existence_by_handle(@$data['name']);
                     if ($result === false) {
                         Essential_Grid::ajaxResponseData(array("data" => array('existence' => 'false')));
                     } elseif ($result === true) {
                         Essential_Grid::ajaxResponseData(array("data" => array('existence' => 'true')));
                     } else {
                         Essential_Grid::ajaxResponseData(array("data" => array('existence' => $result)));
                     }
                     break;
                 case 'get_predefined_elements':
                     $elements = Essential_Grid_Item_Element::getElementsForJavascript();
                     $html_elements = Essential_Grid_Item_Element::prepareDefaultElementsForEditor();
                     $html_elements .= Essential_Grid_Item_Element::prepareTextElementsForEditor();
                     Essential_Grid::ajaxResponseData(array("data" => array('elements' => $elements, 'html' => $html_elements)));
                     break;
                 case 'delete_predefined_elements':
                     $result = Essential_Grid_Item_Element::delete_element_by_handle($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         Essential_Grid::ajaxResponseSuccess(__("Item Element successfully deleted", EG_TEXTDOMAIN), array('data' => $result));
                     }
                     break;
                 case 'update_create_navigation_skin_css':
                     $nav = new Essential_Grid_Navigation();
                     $result = $nav->update_create_navigation_skin_css($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         $base = new Essential_Grid_Base();
                         $skin_css = Essential_Grid_Navigation::output_navigation_skins();
                         $skins = Essential_Grid_Navigation::get_essential_navigation_skins();
                         $select = '';
                         foreach ($skins as $skin) {
                             $select .= '<option value="' . $skin['handle'] . '">' . $skin['name'] . '</option>' . "\n";
                         }
                         if (isset($data['sid']) && intval($data['sid']) > 0) {
                             Essential_Grid::ajaxResponseSuccess(__("Navigation Skin successfully changed!", EG_TEXTDOMAIN), array('css' => $skin_css, 'select' => $select, 'default_skins' => $skins));
                         } else {
                             Essential_Grid::ajaxResponseSuccess(__("Navigation Skin successfully created", EG_TEXTDOMAIN), array('css' => $skin_css, 'select' => $select, 'default_skins' => $skins));
                         }
                     }
                     break;
                 case 'delete_navigation_skin_css':
                     $nav = new Essential_Grid_Navigation();
                     $result = $nav->delete_navigation_skin_css($data);
                     if ($result !== true) {
                         $error = $result;
                     } else {
                         $base = new Essential_Grid_Base();
                         $skin_css = Essential_Grid_Navigation::output_navigation_skins();
                         $skins = Essential_Grid_Navigation::get_essential_navigation_skins();
                         $select = '';
                         foreach ($skins as $skin) {
                             $select .= '<option value="' . $skin['handle'] . '">' . $skin['name'] . '</option>' . "\n";
                         }
                         Essential_Grid::ajaxResponseSuccess(__("Navigation Skin successfully deleted!", EG_TEXTDOMAIN), array('css' => $skin_css, 'select' => $select, 'default_skins' => $skins));
                     }
                     break;
                 case 'get_post_meta_html_for_editor':
                     if (!isset($data['post_id']) || intval($data['post_id']) == 0) {
                         Essential_Grid::ajaxResponseError(__('No Post ID/Wrong Post ID!', EG_TEXTDOMAIN), false);
                         exit;
                     }
                     if (!isset($data['grid_id']) || intval($data['grid_id']) == 0) {
                         Essential_Grid::ajaxResponseError(__('Please save the grid first to use this feature!', EG_TEXTDOMAIN), false);
                         exit;
                     }
                     $post = get_post($data['post_id']);
                     $disable_advanced = true;
                     //nessecary, so that only normal things can be changed in preview mode
                     if (!empty($post)) {
                         $grid_id = $data['grid_id'];
                         ob_start();
                         require 'views/elements/grid-meta-box.php';
                         $content = ob_get_contents();
                         ob_clean();
                         ob_end_clean();
                         Essential_Grid::ajaxResponseData(array("data" => array('html' => $content)));
                     } else {
                         Essential_Grid::ajaxResponseError(__('Post not found!', EG_TEXTDOMAIN), false);
                         exit;
                     }
                     break;
                 case 'update_post_meta_through_editor':
                     if (!isset($data['metas']) || !isset($data['metas']['post_id']) || intval($data['metas']['post_id']) == 0) {
                         Essential_Grid::ajaxResponseError(__('No Post ID/Wrong Post ID!', EG_TEXTDOMAIN), false);
                         exit;
                     }
                     if (!isset($data['metas']) || !isset($data['metas']['grid_id']) || intval($data['metas']['grid_id']) == 0) {
                         Essential_Grid::ajaxResponseError(__('Please save the grid first to use this feature!', EG_TEXTDOMAIN), false);
                         exit;
                     }
                     //set the cobbles setting to the post
                     $cobbles = json_decode(get_post_meta($data['metas']['post_id'], 'eg_cobbles', true), true);
                     $cobbles[$data['metas']['grid_id']]['cobbles'] = $data['metas']['eg_cobbles_size'];
                     $cobbles = json_encode($cobbles);
                     update_post_meta($data['metas']['post_id'], 'eg_cobbles', $cobbles);
                     //set the use_skin setting to the post
                     $use_skin = json_decode(get_post_meta($data['metas']['post_id'], 'eg_use_skin', true), true);
                     $use_skin[$data['metas']['grid_id']]['use-skin'] = $data['metas']['eg_use_skin'];
                     $use_skin = json_encode($use_skin);
                     update_post_meta($data['metas']['post_id'], 'eg_use_skin', $use_skin);
                     $result = self::custom_meta_box_save($data['metas']['post_id'], $data['metas'], true);
                     self::check_for_transient_deletion($data['metas']['post_id']);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__("Post Meta saved!", EG_TEXTDOMAIN), array());
                     } else {
                         Essential_Grid::ajaxResponseError(__('Post not found!', EG_TEXTDOMAIN), false);
                         exit;
                     }
                     break;
                 case 'trigger_post_meta_visibility':
                     if (!isset($data['post_id']) || intval($data['post_id']) == 0) {
                         Essential_Grid::ajaxResponseError(__('No Post ID/Wrong Post ID!', EG_TEXTDOMAIN), false);
                         exit;
                     }
                     if (!isset($data['grid_id']) || intval($data['grid_id']) == 0) {
                         Essential_Grid::ajaxResponseError(__('Please save the grid first to use this feature!', EG_TEXTDOMAIN), false);
                         exit;
                     }
                     $visibility = json_decode(get_post_meta($data['post_id'], 'eg_visibility', true), true);
                     $found = false;
                     if (!empty($visibility) && is_array($visibility)) {
                         foreach ($visibility as $grid => $setting) {
                             if ($grid == $data['grid_id']) {
                                 if ($setting == false) {
                                     $visibility[$grid] = true;
                                 } else {
                                     $visibility[$grid] = false;
                                 }
                                 $found = true;
                                 break;
                             }
                         }
                     }
                     if (!$found) {
                         $visibility[$data['grid_id']] = false;
                     }
                     $visibility = json_encode($visibility);
                     update_post_meta($data['post_id'], 'eg_visibility', $visibility);
                     self::check_for_transient_deletion($data['post_id']);
                     Essential_Grid::ajaxResponseSuccess(__("Visibility of Post for this Grid changed!", EG_TEXTDOMAIN), array());
                     break;
                 case 'get_image_by_id':
                     if (!isset($data['img_id']) || intval($data['img_id']) == 0) {
                         $error = __('Wrong Image ID given', EG_TEXTDOMAIN);
                     } else {
                         $img = wp_get_attachment_image_src($data['img_id'], 'full');
                         if ($img !== false) {
                             Essential_Grid::ajaxResponseSuccess('', array('url' => $img[0]));
                         } else {
                             $error = __('Image with given ID does not exist', EG_TEXTDOMAIN);
                         }
                     }
                     break;
                 case 'activate_purchase_code':
                     $result = false;
                     if (!empty($data['username']) && !empty($data['api_key']) && !empty($data['code'])) {
                         $result = Essential_Grid_Admin::check_purchase_verification($data);
                     } else {
                         $error = __('The API key, the Purchase Code and the Username need to be set!', EG_TEXTDOMAIN);
                     }
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__('Purchase Code Successfully Activated', EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getViewUrl("", "", 'essential-' . Essential_Grid_Admin::VIEW_START)));
                     } else {
                         if ($result !== false) {
                             $error = $result;
                         } else {
                             $error = __('Purchase Code is invalid', EG_TEXTDOMAIN);
                         }
                         Essential_Grid::ajaxResponseError($error, false);
                         exit;
                     }
                     break;
                 case 'deactivate_purchase_code':
                     $result = Essential_Grid_Admin::do_purchase_deactivation($data);
                     if ($result === true) {
                         Essential_Grid::ajaxResponseSuccess(__('Successfully removed validation', EG_TEXTDOMAIN), array('data' => $result, 'is_redirect' => true, 'redirect_url' => self::getViewUrl("", "", 'essential-' . Essential_Grid_Admin::VIEW_START)));
                     } else {
                         if ($result !== false) {
                             $error = $result;
                         } else {
                             $error = __('Could not remove Validation!', EG_TEXTDOMAIN);
                         }
                         Essential_Grid::ajaxResponseError($error, false);
                         exit;
                     }
                     break;
                 case 'dismiss_notice':
                     update_option('tp_eg_valid-notice', 'false');
                     Essential_Grid::ajaxResponseSuccess('.');
                     break;
                 case 'import_default_post_data':
                     try {
                         require EG_PLUGIN_PATH . 'includes/assets/default-posts.php';
                         require EG_PLUGIN_PATH . 'includes/assets/default-grids-meta-fonts.php';
                         if (isset($json_tax)) {
                             $import_tax = new PunchPost();
                             $import_tax->import_taxonomies($json_tax);
                         }
                         //insert meta, grids & punchfonts
                         $im = new Essential_Grid_Import();
                         if (isset($tp_grid_meta_fonts)) {
                             $tp_grid_meta_fonts = json_decode($tp_grid_meta_fonts, true);
                             $grids = @$tp_grid_meta_fonts['grids'];
                             if (!empty($grids) && is_array($grids)) {
                                 $grids_imported = $im->import_grids($grids);
                             }
                             $custom_metas = @$tp_grid_meta_fonts['custom-meta'];
                             if (!empty($custom_metas) && is_array($custom_metas)) {
                                 $custom_metas_imported = $im->import_custom_meta($custom_metas);
                             }
                             $custom_fonts = @$tp_grid_meta_fonts['punch-fonts'];
                             if (!empty($custom_fonts) && is_array($custom_fonts)) {
                                 $custom_fonts_imported = $im->import_punch_fonts($custom_fonts);
                             }
                         }
                         if (isset($json_posts)) {
                             $import = new PunchPort();
                             $import->set_tp_import_posts($json_posts);
                             $import->import_custom_posts();
                         }
                         Essential_Grid::ajaxResponseSuccess(__('Demo data successfully imported', EG_TEXTDOMAIN), array());
                     } catch (Exception $d) {
                         $error = __('Something went wrong, please contact the developer', EG_TEXTDOMAIN);
                     }
                     break;
                 case 'export_data':
                     $export_grids = self::getPostVar('export-grids-id', false);
                     $export_skins = self::getPostVar('export-skins-id', false);
                     $export_elements = self::getPostVar('export-elements-id', false);
                     $export_navigation_skins = self::getPostVar('export-navigation-skins-id', false);
                     $export_global_styles = self::getPostVar('export-global-styles', false);
                     $export_custom_meta = self::getPostVar('export-custom-meta-handle', false);
                     $export_punch_fonts = self::getPostVar('export-punch-fonts-handle', false);
                     header('Content-Type: text/json');
                     header('Content-Disposition: attachment;filename=ess_grid.json');
                     ob_start();
                     $export = array();
                     $ex = new Essential_Grid_Export();
                     //export Grids
                     if (!empty($export_grids)) {
                         $export['grids'] = $ex->export_grids($export_grids);
                     }
                     //export Skins
                     if (!empty($export_skins)) {
                         $export['skins'] = $ex->export_skins($export_skins);
                     }
                     //export Elements
                     if (!empty($export_elements)) {
                         $export['elements'] = $ex->export_elements($export_elements);
                     }
                     //export Navigation Skins
                     if (!empty($export_navigation_skins)) {
                         $export['navigation-skins'] = $ex->export_navigation_skins($export_navigation_skins);
                     }
                     //export Custom Meta
                     if (!empty($export_custom_meta)) {
                         $export['custom-meta'] = $ex->export_custom_meta($export_custom_meta);
                     }
                     //export Punch Fonts
                     if (!empty($export_punch_fonts)) {
                         $export['punch-fonts'] = $ex->export_punch_fonts($export_punch_fonts);
                     }
                     //export Global Styles
                     if ($export_global_styles == 'on') {
                         $export['global-css'] = $ex->export_global_styles($export_global_styles);
                     }
                     echo json_encode($export);
                     $content = ob_get_contents();
                     ob_clean();
                     ob_end_clean();
                     echo $content;
                     exit;
                     break;
                 case 'import_data':
                     if (!isset($data['imports']) || empty($data['imports'])) {
                         Essential_Grid::ajaxResponseError(__('No data for import selected', EG_TEXTDOMAIN), false);
                         exit;
                     }
                     try {
                         $im = new Essential_Grid_Import();
                         $temp_d = @$data['imports'];
                         unset($temp_d['data-grids']);
                         unset($temp_d['data-skins']);
                         unset($temp_d['data-elements']);
                         unset($temp_d['data-navigation-skins']);
                         unset($temp_d['data-global-css']);
                         $im->set_overwrite_data($temp_d);
                         //set overwrite data global to class
                         $skins = @$data['imports']['data-skins'];
                         if (!empty($skins) && is_array($skins)) {
                             foreach ($skins as $key => $skin) {
                                 $tskin = json_decode(stripslashes($skin), true);
                                 if (empty($tskin)) {
                                     $tskin = json_decode($skin, true);
                                 }
                                 $skins[$key] = $tskin;
                             }
                             if (!empty($skins)) {
                                 $skins_ids = @$data['imports']['import-skins-id'];
                                 $skins_imported = $im->import_skins($skins, $skins_ids);
                             }
                         }
                         $navigation_skins = @$data['imports']['data-navigation-skins'];
                         if (!empty($navigation_skins) && is_array($navigation_skins)) {
                             foreach ($navigation_skins as $key => $navigation_skin) {
                                 $tnavigation_skin = json_decode(stripslashes($navigation_skin), true);
                                 if (empty($tnavigation_skin)) {
                                     $tnavigation_skin = json_decode($navigation_skin, true);
                                 }
                                 $navigation_skins[$key] = $tnavigation_skin;
                             }
                             if (!empty($navigation_skins)) {
                                 $navigation_skins_ids = @$data['imports']['import-navigation-skins-id'];
                                 $navigation_skins_imported = $im->import_navigation_skins(@$navigation_skins, $navigation_skins_ids);
                             }
                         }
                         $grids = @$data['imports']['data-grids'];
                         if (!empty($grids) && is_array($grids)) {
                             foreach ($grids as $key => $grid) {
                                 $tgrid = json_decode(stripslashes($grid), true);
                                 if (empty($tgrid)) {
                                     $tgrid = json_decode($grid, true);
                                 }
                                 $grids[$key] = $tgrid;
                             }
                             if (!empty($grids)) {
                                 $grids_ids = @$data['imports']['import-grids-id'];
                                 $grids_imported = $im->import_grids($grids, $grids_ids);
                             }
                         }
                         $elements = @$data['imports']['data-elements'];
                         if (!empty($elements) && is_array($elements)) {
                             foreach ($elements as $key => $element) {
                                 $telement = json_decode(stripslashes($element), true);
                                 if (empty($telement)) {
                                     $telement = json_decode($element, true);
                                 }
                                 $elements[$key] = $telement;
                             }
                             if (!empty($elements)) {
                                 $elements_ids = @$data['imports']['import-elements-id'];
                                 $elements_imported = $im->import_elements(@$elements, $elements_ids);
                             }
                         }
                         $custom_metas = @$data['imports']['data-custom-meta'];
                         if (!empty($custom_metas) && is_array($custom_metas)) {
                             foreach ($custom_metas as $key => $custom_meta) {
                                 $tcustom_meta = json_decode(stripslashes($custom_meta), true);
                                 if (empty($tcustom_meta)) {
                                     $tcustom_meta = json_decode($custom_meta, true);
                                 }
                                 $custom_metas[$key] = $tcustom_meta;
                             }
                             if (!empty($custom_metas)) {
                                 $custom_metas_handle = @$data['imports']['import-custom-meta-handle'];
                                 $custom_metas_imported = $im->import_custom_meta($custom_metas, $custom_metas_handle);
                             }
                         }
                         $custom_fonts = @$data['imports']['data-punch-fonts'];
                         if (!empty($custom_fonts) && is_array($custom_fonts)) {
                             foreach ($custom_fonts as $key => $custom_font) {
                                 $tcustom_font = json_decode(stripslashes($custom_font), true);
                                 if (empty($tcustom_font)) {
                                     $tcustom_font = json_decode($custom_font, true);
                                 }
                                 $custom_fonts[$key] = $tcustom_font;
                             }
                             if (!empty($custom_fonts)) {
                                 $custom_fonts_handle = @$data['imports']['import-punch-fonts-handle'];
                                 $custom_fonts_imported = $im->import_punch_fonts($custom_fonts, $custom_fonts_handle);
                             }
                         }
                         if (@$data['imports']['import-global-styles'] == 'on') {
                             $global_css = @$data['imports']['data-global-css'];
                             $tglobal_css = stripslashes($global_css);
                             if (empty($tglobal_css)) {
                                 $tglobal_css = $global_css;
                             }
                             $global_styles_imported = $im->import_global_styles($tglobal_css);
                         }
                         Essential_Grid::ajaxResponseSuccess(__('Successfully imported data', EG_TEXTDOMAIN), array('is_redirect' => true, 'redirect_url' => self::getViewUrl("", "", 'essential-' . Essential_Grid_Admin::VIEW_START)));
                     } catch (Exception $d) {
                         $error = __('Something went wrong, please contact the developer', EG_TEXTDOMAIN);
                     }
                     break;
                 case 'delete_full_cache':
                     $lang = array();
                     if (Essential_Grid_Wpml::is_wpml_exists()) {
                         $lang = icl_get_languages();
                     }
                     $grids = Essential_Grid::get_essential_grids();
                     if (!empty($grids)) {
                         foreach ($grids as $grid) {
                             if (!empty($lang)) {
                                 foreach ($lang as $code => $val) {
                                     delete_transient('ess_grid_trans_query_' . $grid->id . $val['language_code']);
                                     delete_transient('ess_grid_trans_full_grid_' . $grid->id . $val['language_code']);
                                 }
                             } else {
                                 delete_transient('ess_grid_trans_query_' . $grid->id);
                                 delete_transient('ess_grid_trans_full_grid_' . $grid->id);
                             }
                         }
                     }
                     Essential_Grid::ajaxResponseSuccess(__('Successfully deleted all cache', EG_TEXTDOMAIN), array());
                     break;
                 case "get_image_url":
                     if (isset($data['imageid']) && intval($data['imageid']) > 0) {
                         $img_atts = wp_get_attachment_image_src($data['imageid']);
                         if ($img_atts !== false) {
                             $img_src = $img_atts[0];
                             Essential_Grid::ajaxResponseSuccess(__("Image URL found", EG_TEXTDOMAIN), array('url' => $img_src, 'imageid' => $data['imageid']));
                         }
                     }
                     $error = __('No correct image ID given', EG_TEXTDOMAIN);
                     break;
                 case "toggle_grid_favorite":
                     if (isset($data['id']) && intval($data['id']) > 0) {
                         $return = self::toggle_favorite_by_id($data['id']);
                         if ($return === true) {
                             Essential_Grid::ajaxResponseSuccess(__("Favorite Set", EG_TEXTDOMAIN));
                         } else {
                             $error = $return;
                         }
                     } else {
                         $error = __('No ID given', EG_TEXTDOMAIN);
                     }
                     break;
                 case "subscribe_to_newsletter":
                     if (isset($data['email']) && !empty($data['email'])) {
                         $return = ThemePunch_Newsletter::subscribe($data['email']);
                         if ($return !== false) {
                             if (!isset($return['status']) || $return['status'] === 'error') {
                                 $error = isset($return['message']) && !empty($return['message']) ? $return['message'] : __('Invalid Email', EG_TEXTDOMAIN);
                             } else {
                                 Essential_Grid::ajaxResponseSuccess(__("Success! Please check your Emails to finish the subscribtion", EG_TEXTDOMAIN), $return);
                             }
                         } else {
                             $error = __('Invalid Email/Could not connect to the Newsletter server', EG_TEXTDOMAIN);
                         }
                     } else {
                         $error = __('No Email given', EG_TEXTDOMAIN);
                     }
                     break;
                 case "unsubscribe_to_newsletter":
                     if (isset($data['email']) && !empty($data['email'])) {
                         $return = ThemePunch_Newsletter::unsubscribe($data['email']);
                         if ($return !== false) {
                             if (!isset($return['status']) || $return['status'] === 'error') {
                                 $error = isset($return['message']) && !empty($return['message']) ? $return['message'] : __('Invalid Email', EG_TEXTDOMAIN);
                             } else {
                                 Essential_Grid::ajaxResponseSuccess(__("Success! Please check your Emails to finish the process", EG_TEXTDOMAIN), $return);
                             }
                         } else {
                             $error = __('Invalid Email/Could not connect to the Newsletter server', EG_TEXTDOMAIN);
                         }
                     } else {
                         $error = __('No Email given', EG_TEXTDOMAIN);
                     }
                     break;
                 default:
                     $error = true;
                     break;
             }
         } else {
             $error = true;
         }
         if ($error !== false) {
             $showError = __("Wrong Request!", EG_TEXTDOMAIN);
             if ($error !== true) {
                 $showError = __("Ajax Error: ", EG_TEXTDOMAIN) . $error;
             }
             Essential_Grid::ajaxResponseError($showError, false);
         }
         exit;
     } catch (Exception $e) {
         exit;
     }
 }
Пример #16
0
<?php

if (!defined('ABSPATH')) {
    exit;
}
//force the js file to be included
wp_enqueue_script('essential-grid-item-editor-script', plugins_url('../../assets/js/grid-editor.js', __FILE__), array('jquery'), Essential_Grid::VERSION);
$base = new Essential_Grid_Base();
$item_elements = new Essential_Grid_Item_Element();
$meta = new Essential_Grid_Meta();
$meta_link = new Essential_Grid_Meta_Linking();
$fonts = new ThemePunch_Fonts();
//check if id exists and get data from database if so.
$skin = false;
$skin_id = false;
$isCreate = $base->getGetVar('create', 'true');
$title = __('Create New Item Skin', EG_TEXTDOMAIN);
$save = __('Save Item Skin', EG_TEXTDOMAIN);
if (intval($isCreate) > 0) {
    //currently editing
    $skin = Essential_Grid_Item_Skin::get_essential_item_skin_by_id(intval($isCreate));
    if (!empty($skin)) {
        $title = __('Change Item Skin', EG_TEXTDOMAIN);
        $save = __('Change Item Skin', EG_TEXTDOMAIN);
        $skin_id = intval($isCreate);
    }
}
$elements = $item_elements->getElementsForJavascript();
$style_attributes = $item_elements->get_existing_elements(true);
$all_attributes = $item_elements->get_existing_elements();
$element_type = $item_elements->getElementsForDropdown();
 /**
  * Retrieve the value of post elements
  */
 public function get_custom_element_value($handle, $separator, $meta = '')
 {
     $base = new Essential_Grid_Base();
     $m = new Essential_Grid_Meta();
     $text = '';
     $text = $base->getVar($this->layer_values, $handle, '');
     if ($text == '' && $meta != '') {
         $text = $base->getVar($this->layer_values, $meta, '');
     }
     if (intval($text) > 0) {
         //we may be an image from the metas
         $custom_meta = $m->get_all_meta(false);
         if (!empty($custom_meta)) {
             foreach ($custom_meta as $cmeta) {
                 if ($cmeta['handle'] == $handle) {
                     if ($cmeta['type'] == 'image') {
                         $img = wp_get_attachment_image_src($text, $this->media_sources_type);
                         if ($img !== false) {
                             $text = $img[0];
                             //replace with URL
                         }
                     }
                     break;
                 }
             }
         }
     }
     return $text;
 }
Пример #18
0
 /**
  * Handle Ajax Requests
  */
 public static function on_front_ajax_action()
 {
     $base = new Essential_Grid_Base();
     $token = $base->getPostVar("token", false);
     //verify the token
     $isVerified = wp_verify_nonce($token, 'Essential_Grid_Front');
     $error = false;
     if ($isVerified) {
         $data = $base->getPostVar('data', false);
         //client_action: load_more_items
         switch ($base->getPostVar('client_action', false)) {
             case 'load_more_items':
                 $gridid = $base->getPostVar('gridid', 0, 'i');
                 if (!empty($data) && $gridid > 0) {
                     $grid = new Essential_Grid();
                     $result = $grid->init_by_id($gridid);
                     if (!$result) {
                         $error = __('Grid not found', EG_TEXTDOMAIN);
                     } else {
                         $grid->set_loading_ids($data);
                         //set to only load choosen items
                         $html = false;
                         //check if we are custom grid
                         if ($grid->is_custom_grid()) {
                             $html = $grid->output_by_specific_ids();
                         } else {
                             $html = $grid->output_by_specific_posts();
                         }
                         if ($html !== false) {
                             self::ajaxResponseData($html);
                         } else {
                             $error = __('Items Not Found', EG_TEXTDOMAIN);
                         }
                     }
                 } else {
                     $error = __('No Data Received', EG_TEXTDOMAIN);
                 }
                 break;
             case 'load_more_content':
                 $postid = $base->getPostVar('postid', 0, 'i');
                 if ($postid > 0) {
                     $raw_content = get_post_field('post_content', $postid);
                     if (!is_wp_error($raw_content)) {
                         $content = apply_filters('the_content', $raw_content);
                         //filter apply for qTranslate and other
                         self::ajaxResponseData($content);
                     }
                 }
                 $error = __('Post Not Found', EG_TEXTDOMAIN);
                 break;
             case 'get_search_results':
                 $search_string = $base->getVar($data, 'search', '');
                 $search_skin = $base->getVar($data, 'skin', 0, 'i');
                 if ($search_string !== '' && $search_skin > 0) {
                     $search = new Essential_Grid_Search();
                     $return = $search->output_search_result($search_string, $search_skin);
                     self::ajaxResponseData($return);
                 }
                 $error = __('Not found', EG_TEXTDOMAIN);
                 break;
             case 'get_grid_search_ids':
                 $search_string = $base->getVar($data, 'search', '');
                 $grid_id = $base->getVar($data, 'id', 0, 'i');
                 if ($search_string !== '' && $grid_id > 0) {
                     $return = Essential_Grid_Search::output_search_result_ids($search_string, $grid_id);
                     if (!is_array($return)) {
                         $error = $return;
                     } else {
                         self::ajaxResponseSuccess('', $return);
                     }
                 }
                 $error = __('Not found', EG_TEXTDOMAIN);
                 break;
         }
     } else {
         $error = true;
     }
     if ($error !== false) {
         $showError = __('Loading Error', EG_TEXTDOMAIN);
         if ($error !== true) {
             $showError = $error;
         }
         self::ajaxResponseError($showError, false);
     }
     exit;
 }
Пример #19
0
    /**
     * Add tinymce shortcode dialog
     * @since    1.2.0
     */
    public static function add_tiny_mce_shortcode_dialog()
    {
        $base = new Essential_Grid_Base();
        $grid_c = new Essential_Grid();
        $skins_c = new Essential_Grid_Item_Skin();
        $grids = Essential_Grid::get_grids_short_vc();
        ?>
		<div id="ess-grid-tiny-mce-dialog" tabindex="-1" action="" class="essential-dialog-wrap" title="<?php 
        _e('Shortcode Generator', EG_TEXTDOMAIN);
        ?>
" style="display: none; ">
			<script type="text/javascript">
				var token = '<?php 
        echo wp_create_nonce("Essential_Grid_actions");
        ?>
';
			</script>
			<form id="ess-grid-tiny-mce-settings-form" action="">
			
				<!-- STEP 1 -->
				<div id="ess-grid-tiny-dialog-step-1">
					<div class="ess-top_half">
						<p class="ess-quicktitle"><?php 
        _e('Choose Predefined Grid:', EG_TEXTDOMAIN);
        ?>
</p>
						<select name="ess-grid-existing-grid">
							<option value="-1"><?php 
        _e('--- Choose Grid ---', EG_TEXTDOMAIN);
        ?>
</option>
							<?php 
        if (!empty($grids)) {
            foreach ($grids as $title => $alias) {
                echo '<option value="' . $alias . '">' . $title . '</option>' . "\n";
            }
        }
        ?>
						</select>
						<div style="margin-top:20px">
							<a href="javascript:void(0);" class="button-primary ess-revgreen" id="eg-add-predefined-grid"><?php 
        _e('Add Selected Grid', EG_TEXTDOMAIN);
        ?>
</a>
							<a href="<?php 
        echo Essential_Grid_Base::getViewUrl(Essential_Grid_Admin::VIEW_GRID_CREATE, 'create=true');
        ?>
" target="_blank" class="button-primary ess-revgreen" id="eg-create-predefined-grid"><?php 
        _e('Create Full Grid', EG_TEXTDOMAIN);
        ?>
</a>
						</div>
					</div>
					<div class="ess-bottom_half">
						<p class="ess-quicktitle"><?php 
        _e('Create a Quick Grid:', EG_TEXTDOMAIN);
        ?>
</p>
						<a href="javascript:void(0);" class="" id="eg-create-custom-grid">
							<div class="ess-customgridwrap">
								<div class="dashicons dashicons-format-gallery ess-customgridicon"></div>
								<div class="ess-customonbutton"><?php 
        _e('Add Custom', EG_TEXTDOMAIN);
        ?>
</div>
							</div>
						</a>
						
						<a href="javascript:void(0);" class="" id="eg-edit-custom-grid">
							<div class="ess-customgridwrap">
								<div class="dashicons dashicons-format-gallery ess-customgridicon"></div>
								<div class="ess-customonbutton"><?php 
        _e('Edit Custom', EG_TEXTDOMAIN);
        ?>
</div>
							</div>
						</a>
						
						
						<a href="javascript:void(0);" class="" id="eg-create-popularpost-grid">
							<div class="ess-customgridwrap">
								<div class="dashicons dashicons-groups ess-customgridicon"></div>
								<div class="ess-customonbutton"><?php 
        _e('Popular Post', EG_TEXTDOMAIN);
        ?>
</div>
							</div>
						</a>


						<a href="javascript:void(0);" class="" id="eg-create-recentpost-grid">
							<div class="ess-customgridwrap">
								<div class="dashicons dashicons-calendar ess-customgridicon"></div>
								<div class="ess-customonbutton"><?php 
        _e('Recent Post', EG_TEXTDOMAIN);
        ?>
</div>
							</div>
						</a>
						
						<a href="javascript:void(0);" class="" id="eg-create-relatedpost-grid">
							<div class="ess-customgridwrap">
								<div class="dashicons dashicons-tickets ess-customgridicon"></div>
								<div class="ess-customonbutton"><?php 
        _e('Related Post', EG_TEXTDOMAIN);
        ?>
</div>
							</div>
						</a>
						
					</div>
					
					<div class="ess-stepnavigator">
						<span class="ess-currentstep"><?php 
        _e('STEP 1 - Choose Grid', EG_TEXTDOMAIN);
        ?>
</span>
					</div>
				</div>
				
				<!-- STEP 2.5 -->
				<div id="ess-grid-tiny-dialog-step-2-5" style="display: none;">
					<div id="esg-tiny-shortcode-analyze-wrap" class="ess-top_half" style="padding-top:0px;margin-top:0px;padding-bottom:30px;">
						<div class="ess-quicktitle" style="margin-left:25px;"><?php 
        _e('Edit Existing QuickGrid ShortCode', EG_TEXTDOMAIN);
        ?>
</div>
						<p>
							<label><?php 
        _e('Input Quickgrid Code', EG_TEXTDOMAIN);
        ?>
</label>
							<input type="text" name="eg-shortcode-analyzer" value="" /> <a class="button-primary revblue" href="javascript:void(0);" id="eg-shortcode-do-analyze"><?php 
        _e('Analyze Shortcode', EG_TEXTDOMAIN);
        ?>
</a>
						</p>
						<p style="line-height:20px;font-size:11px;font-style:italic;color:#999;"><?php 
        _e('You can paste your Existing Quick Grid Shortcode here for further editing. Simple copy the full Shortcode of Essential grid i.e. [ess_grid settings=....][/ess_grid] and paste it here.', EG_TEXTDOMAIN);
        ?>
					</div>
					<div style="width:100%;height:30px"></div>
					<div class="ess-stepnavigator">
						<a href="javascript:void(0);" class=""  id="eg-goto-step-1-5">
							<div class="ess-stepbutton-left">
								<div class="dashicons dashicons-arrow-left-alt2"></div>	
								<span class="ess-currentstep"><?php 
        _e('STEP 1 - Select Grid', EG_TEXTDOMAIN);
        ?>
</span>										
							</div>
						</a>
					</div>
				</div>
				
				<!-- STEP 2 -->
				<div id="ess-grid-tiny-dialog-step-2" style="display: none;">
					<div id="esg-tiny-settings-wrap">
						<div class="ess-top_half" style="padding:0px 0px 30px;">
							<div class="ess-quicktitle" style="margin-left:25px;"><?php 
        _e('Predefined Grid Settings', EG_TEXTDOMAIN);
        ?>
</div>
							
							<p style="">
								<label><?php 
        _e('Choose Grid', EG_TEXTDOMAIN);
        ?>
</label>
								<select name="ess-grid-tiny-existing-settings">
									<option value="-1"><?php 
        _e('--- Choose Grid to use Settings from Grid ---', EG_TEXTDOMAIN);
        ?>
</option>
									<?php 
        if (!empty($grids)) {
            foreach ($grids as $title => $alias) {
                echo '<option value="' . $alias . '">' . $title . '</option>' . "\n";
            }
        }
        ?>
								</select>
								<p style="line-height:20px;font-size:11px;font-style:italic;color:#999;"><?php 
        _e('Use the Grid Settings from one of the Existing Essential Grid. This helps to use all Complex settings of a Grid, not just the quick settings listed below.', EG_TEXTDOMAIN);
        ?>
							</p>
						</div>
						<div class="ess-bottom_half" style="padding:30px 0px 0px;">
							<div class="ess-quicktitle" style="margin-left:25px;"><?php 
        _e('Quick Grid Settings', EG_TEXTDOMAIN);
        ?>
</div>
							
							<p class="esg-max-entries" style="display: none; background:#FFF;">
								<label><?php 
        _e('Maximum Entries', EG_TEXTDOMAIN);
        ?>
</label>
								<input type="text" name="ess-grid-tiny-max-entries" value="20" />
							</p>
							<div id="ess-grid-tiny-grid-settings-wrap">
		
								<p>
									<label><?php 
        _e('Grid Skin', EG_TEXTDOMAIN);
        ?>
</label>
									<select name="ess-grid-tiny-entry-skin">
										<?php 
        $skins = Essential_Grid_Item_Skin::get_essential_item_skins('all', false);
        if (!empty($skins)) {
            foreach ($skins as $skin) {
                echo '<option value="' . $skin['id'] . '">' . $skin['name'] . '</option>' . "\n";
            }
        }
        ?>
									</select>
								</p>
								<p>
									<label><?php 
        _e('Layout', EG_TEXTDOMAIN);
        ?>
</label>
									<select name="ess-grid-tiny-layout-sizing">
										<option value="boxed"><?php 
        _e('Boxed', EG_TEXTDOMAIN);
        ?>
</option>
										<option value="fullwidth"><?php 
        _e('Fullwidth', EG_TEXTDOMAIN);
        ?>
</option>
									</select>
								</p>
								<p>
									<label><?php 
        _e('Grid Layout', EG_TEXTDOMAIN);
        ?>
</label>
									<select name="ess-grid-tiny-grid-layout">
										<option value="even"><?php 
        _e('Even', EG_TEXTDOMAIN);
        ?>
</option>
										<option value="masonry"><?php 
        _e('Masonry', EG_TEXTDOMAIN);
        ?>
</option>
										<option value="cobbles"><?php 
        _e('Cobbles', EG_TEXTDOMAIN);
        ?>
</option>
									</select>
								</p>
								<p>
									<label><?php 
        _e('Item Spacing', EG_TEXTDOMAIN);
        ?>
</label>
									<input type="text" name="ess-grid-tiny-spacings" value="0" />
								</p>
								<p>
									<label><?php 
        _e('Pagination', EG_TEXTDOMAIN);
        ?>
</label>
									<input type="radio" style="margin-left:0px !important;" name="ess-grid-tiny-rows-unlimited" value="on" /> <?php 
        _e('Disable', EG_TEXTDOMAIN);
        ?>
 
									<input type="radio" name="ess-grid-tiny-rows-unlimited" checked="checked" value="off" /> <?php 
        _e('Enable', EG_TEXTDOMAIN);
        ?>
 
								</p>
								<p>
									<label><?php 
        _e('Columns', EG_TEXTDOMAIN);
        ?>
</label>
									<input type="text" name="ess-grid-tiny-columns" value="5" />
								</p>
								<p>
									<label><?php 
        _e('Max. Visible Rows', EG_TEXTDOMAIN);
        ?>
</label>
									<input type="text" name="ess-grid-tiny-rows" value="3" />
								</p>
								<p>
									<label><?php 
        _e('Start and Filter Animations', EG_TEXTDOMAIN);
        ?>
</label>
									<?php 
        $anims = Essential_Grid_Base::get_grid_animations();
        ?>
									<select class="eg-tooltip-wrap tooltipstered" name="ess-grid-tiny-grid-animation" id="grid-animation-select">
										<?php 
        foreach ($anims as $value => $name) {
            echo '<option value="' . $value . '">' . $name . '</option>' . "\n";
        }
        ?>
									</select>
								</p>
								<p>
									<label><?php 
        _e('Choose Spinner', EG_TEXTDOMAIN);
        ?>
</label>
									<select class="eg-tooltip-wrap tooltipstered" name="ess-grid-tiny-use-spinner" id="use_spinner">
										<option value="-1"><?php 
        _e('off', EG_TEXTDOMAIN);
        ?>
</option>
										<option value="0" selected="selected">0</option>
										<option value="1">1</option>
										<option value="2">2</option>
										<option value="3">3</option>
										<option value="4">4</option>
										<option value="5">5</option>
									</select>
								</p>
							</div>
						</div>
					</div>
					<!--<a href="javascript:void(0);" class="button-primary ess-revgreen"  id="eg-goto-step-3"><?php 
        _e('Add Entries', EG_TEXTDOMAIN);
        ?>
</a>-->
					<div style="width:100%;height:30px"></div>
					<div class="ess-stepnavigator">
						<a href="javascript:void(0);" class=""  id="eg-goto-step-1">
							<div class="ess-stepbutton-left">
								<div class="dashicons dashicons-arrow-left-alt2"></div>	
								<span class="ess-currentstep"><?php 
        _e('STEP 1 - Select Grid', EG_TEXTDOMAIN);
        ?>
</span>										
							</div>
						</a>

						<a href="javascript:void(0);" class=""  id="eg-goto-step-3">
							<div class="ess-stepbutton-right">
								<span class="ess-currentstep"><?php 
        _e('STEP 3 - Add Items', EG_TEXTDOMAIN);
        ?>
</span>										
								<div class="dashicons dashicons-arrow-right-alt2"></div>									
							</div>
						</a>

						<a href="javascript:void(0);" class=""  id="ess-grid-add-custom-shortcode-special" style="display: none;">
							<div class="ess-stepbutton-right">
								<span class="ess-currentstep"><?php 
        _e('FINNISH - Generate Shortcode', EG_TEXTDOMAIN);
        ?>
</span>										
								<div class="dashicons dashicons-arrow-right-alt2"></div>									
							</div>
						</a>
					</div>
				</div>
			</form>
			<form id="ess-grid-tiny-mce-layers-form" action="">
			
				<!-- STEP 3 -->
				<div id="ess-grid-tiny-dialog-step-3" style="display: none;">
					<div style="padding:30px">
						<div class="ess-mediaselector"><a href="javascript:void(0);" class="eg-add-custom-element" data-type="image"><div class="dashicons dashicons-format-image"></div><?php 
        _e('Image', EG_TEXTDOMAIN);
        ?>
</a></div>
						<div class="ess-mediaselector"><a href="javascript:void(0);" class="eg-add-custom-element" data-type="html5"><div class="dashicons dashicons-editor-video"></div><?php 
        _e('HTML5 Video', EG_TEXTDOMAIN);
        ?>
</a></div>
						<div class="ess-mediaselector"><a href="javascript:void(0);" class="eg-add-custom-element" data-type="vimeo"><div class="dashicons dashicons-format-video"></div><?php 
        _e('Vimeo', EG_TEXTDOMAIN);
        ?>
</a></div>
						<div class="ess-mediaselector"><a href="javascript:void(0);" class="eg-add-custom-element" data-type="youtube"><div class="dashicons dashicons-format-video"></div><?php 
        _e('YouTube', EG_TEXTDOMAIN);
        ?>
</a></div>
						<div class="ess-mediaselector"><a href="javascript:void(0);" class="eg-add-custom-element" data-type="soundcloud"><div class="dashicons dashicons-format-audio"></div><?php 
        _e('SoundCloud', EG_TEXTDOMAIN);
        ?>
</a></div>
						<div class="ess-mediaselector collapseall"><a href="javascript:void(0);"><div class="dashicons dashicons-sort"></div><?php 
        _e('Collapse', EG_TEXTDOMAIN);
        ?>
</a></div>						
						<div id="eg-custom-elements-wrap">
							
						</div>
					</div>
					
					<div style="width:100%;height:30px"></div>
					<div class="ess-stepnavigator">
						<a href="javascript:void(0);" class=""  id="eg-goto-step-2">
							<div class="ess-stepbutton-left">
								<div class="dashicons dashicons-arrow-left-alt2"></div>	
								<span class="ess-currentstep"><?php 
        _e('STEP 2 - Grid Settings', EG_TEXTDOMAIN);
        ?>
</span>										
							</div>
						</a>
						<a href="javascript:void(0);" class="" id="ess-grid-add-custom-shortcode">
							<div class="ess-stepbutton-right">
								<span class="ess-currentstep"><?php 
        _e('FINNISH - Generate Shortcode', EG_TEXTDOMAIN);
        ?>
</span>										
								<div class="dashicons dashicons-arrow-right-alt2"></div>									
							</div>
						</a>
					</div>

				</div>
			</form>
			<div class="esg-tiny-template-wrap esg-tiny-element" style="display: none;">
				<div class="ess-grid-tiny-collapse-wrapper">
						<div style="width:100%;height:10px;"></div>
						<div class="ess-grid-tiny-custom-wrapper" >
							<!-- POSTER  IMAGE -->
							<div id="ess-grid-tiny-custom-poster-wrap" class="ess-grid-tiny-option-wrap" style="display: none;">
								<div class="ess-quicktitle"><?php 
        _e('Choose Poster Image', EG_TEXTDOMAIN);
        ?>
</div>
								<div class="esg-tiny-img-placeholder"><img src="" class="esg-tiny-preshow-img" style="display: none;" /></div>
								<a href="javascript:void(0);" class="esg-toolbutton ess-grid-select-image" data-setto="ess-grid-tiny-custom-poster[]"><div class="dashicons dashicons-plus"></div></a>
								<input type="hidden" name="ess-grid-tiny-custom-poster[]" data-type="image" value="" />
							</div>
							<!-- SIMPLE IMAGE -->
							<div id="ess-grid-tiny-custom-image-wrap" class="ess-grid-tiny-option-wrap" style="display: none;">
								<div class="ess-quicktitle"><?php 
        _e('Choose Image', EG_TEXTDOMAIN);
        ?>
</div>
								<div class="esg-tiny-img-placeholder"><img src="" class="esg-tiny-preshow-img" style="display: none;" /></div>
								<a href="javascript:void(0);" class="esg-toolbutton ess-grid-select-image" data-setto="ess-grid-tiny-custom-image[]"><div class="dashicons dashicons-plus"></div></a>
								<input type="hidden" name="ess-grid-tiny-custom-image[]" data-type="image" value="" />
							</div>
							<!-- VIMEO ID SELECTOR -->
							<div id="ess-grid-tiny-custom-vimeo-wrap" class="ess-grid-tiny-option-wrap" style="display: none;">
								<div class="ess-grid-tiny-elset-label"><?php 
        _e('Vimeo ID', EG_TEXTDOMAIN);
        ?>
 </div><input type="text" name="ess-grid-tiny-custom-vimeo[]" value="" />
							</div>
							<!-- YOUTUBE ID SELECTOR -->
							<div id="ess-grid-tiny-custom-youtube-wrap" class="ess-grid-tiny-option-wrap" style="display: none;">
								<div class="ess-grid-tiny-elset-label"><?php 
        _e('YouTube ID', EG_TEXTDOMAIN);
        ?>
 </div><input type="text" name="ess-grid-tiny-custom-youtube[]" value="" />
							</div>
							<!-- SOUND CLOUD SELECTOR -->
							<div id="ess-grid-tiny-custom-soundcloud-wrap" class="ess-grid-tiny-option-wrap" style="display: none;">
								<div class="ess-quicktitle"><?php 
        _e('SoundCloud', EG_TEXTDOMAIN);
        ?>
</div>
								<div class="ess-grid-tiny-elset-label"><?php 
        _e('SoundCloud ID', EG_TEXTDOMAIN);
        ?>
</div> <input type="text" name="ess-grid-tiny-custom-soundcloud[]" value="" />
							</div>
							<!-- HTML5 SELECTORS -->
							<div id="ess-grid-tiny-custom-html5-wrap" class="ess-grid-tiny-option-wrap" style="display: none;">
								<div class="ess-grid-tiny-elset-label"><?php 
        _e('WEBM URL', EG_TEXTDOMAIN);
        ?>
</div> <input type="text" name="ess-grid-tiny-custom-html5-webm[]" value="" />
								<div class="ess-grid-tiny-elset-label"><?php 
        _e('OGV URL', EG_TEXTDOMAIN);
        ?>
</div> <input type="text" name="ess-grid-tiny-custom-html5-ogv[]" value="" />
								<div class="ess-grid-tiny-elset-label"><?php 
        _e('MP4 URL', EG_TEXTDOMAIN);
        ?>
</div> <input type="text" name="ess-grid-tiny-custom-html5-mp4[]" value="" />
							</div>
							<!-- VIDEO RATIO -->
							<div id="ess-grid-tiny-custom-ratio-wrap" class="ess-grid-tiny-option-wrap" style="display: none;">
								<div class="ess-grid-tiny-elset-label"><?php 
        _e('Video Ratio', EG_TEXTDOMAIN);
        ?>
 </div>
								<select name="ess-grid-tiny-custom-ratio[]">
									<option value="0" selected="selected">4:3</option>
									<option value="1">16:9</option>
								</select>
							</div>
							<!-- COBBLES SETTINGS -->
							<div class="ess-grid-tiny-cobbles-size-wrap ess-grid-tiny-option-wrap" style="display: none;">
								<div class="ess-grid-tiny-elset-label"><?php 
        _e('Cobbles Size', EG_TEXTDOMAIN);
        ?>
 </div>
								<select name="ess-grid-tiny-cobbles-size[]">
									<option value="1:1"><?php 
        _e('width 1, height 1', EG_TEXTDOMAIN);
        ?>
</option>
									<option value="1:2"><?php 
        _e('width 1, height 2', EG_TEXTDOMAIN);
        ?>
</option>
									<option value="1:3"><?php 
        _e('width 1, height 3', EG_TEXTDOMAIN);
        ?>
</option>
									<option value="2:1"><?php 
        _e('width 2, height 1', EG_TEXTDOMAIN);
        ?>
</option>
									<option value="2:2"><?php 
        _e('width 2, height 2', EG_TEXTDOMAIN);
        ?>
</option>
									<option value="2:3"><?php 
        _e('width 2, height 3', EG_TEXTDOMAIN);
        ?>
</option>
									<option value="3:1"><?php 
        _e('width 3, height 1', EG_TEXTDOMAIN);
        ?>
</option>
									<option value="3:2"><?php 
        _e('width 3, height 2', EG_TEXTDOMAIN);
        ?>
</option>
									<option value="3:3"><?php 
        _e('width 3, height 3', EG_TEXTDOMAIN);
        ?>
</option>
								</select>
							</div>
							<!-- CUSTOM SKIN SETTINGS -->
							<div class="ess-grid-tiny-use-skin-wrap ess-grid-tiny-option-wrap">
								<div class="ess-grid-tiny-elset-label"><?php 
        _e('Specific Skin', EG_TEXTDOMAIN);
        ?>
 </div>
								<?php 
        $skins = Essential_Grid_Item_Skin::get_essential_item_skins('all', false);
        ?>
								<select name="ess-grid-tiny-use-skin[]">
									<option value="-1"><?php 
        _e('-- Default Skin --', EG_TEXTDOMAIN);
        ?>
</option>
									<?php 
        if (!empty($skins)) {
            foreach ($skins as $skin) {
                echo '<option value="' . $skin['id'] . '">' . $skin['name'] . '</option>' . "\n";
            }
        }
        ?>
								</select>
							</div>
						</div>
						
						<div class="ess-grid-tiny-custom-wrapper" >
							<?php 
        /*$meta = new Essential_Grid_Meta();
        		$custom_meta = $meta->get_all_meta(false);
        		if(!empty($custom_meta)){
        			echo '<div class="ess-grid-tiny-elset-title">';				
        			_e('Layers Content', EG_TEXTDOMAIN);
        			echo '</div>';
        		
        			foreach($custom_meta as $cmeta){
        				?>
        				<div class="ess-grid-tiny-<?php echo $cmeta['handle']; ?>-wrap ess-grid-tiny-elset-row" style="display: none;"><div class="eg-elset-label" class="eg-mb-label"><?php echo $cmeta['name']; ?>:</div>
        					<?php
        					switch($cmeta['type']){
        						case 'text':
        							echo '<input type="text" name="ess-grid-tiny-'.$cmeta['handle'].'[]" value="" />';
        							break;
        						case 'select':
        							$el = $meta->prepare_select_by_string($cmeta['select']);
        							echo '<select name="ess-grid-tiny-'.$cmeta['handle'].'[]">';
        							if(!empty($el) && is_array($el)){
        								echo '<option value="">'.__('---', EG_TEXTDOMAIN).'</option>';
        								foreach($el as $ele){
        									
        									echo '<option value="'.$ele.'">'.$ele.'</option>';
        								}
        							}
        							echo '</select>';
        							break;
        						case 'image':
        							$var_src = '';
        							?>
        							<input type="hidden" value="" name="ess-grid-tiny-<?php echo $cmeta['handle']; ?>[]" id="ess-grid-tiny-<?php echo $cmeta['handle']; ?>" />
        							<a class="button-primary revblue eg-image-add" href="javascript:void(0);" data-setto="eg-<?php echo $cmeta['handle']; ?>"><?php _e('Choose Image', EG_TEXTDOMAIN); ?></a>
        							<a class="button-primary revred eg-image-clear" href="javascript:void(0);" data-setto="eg-<?php echo $cmeta['handle']; ?>"><?php _e('Remove Image', EG_TEXTDOMAIN); ?></a>
        							<div>
        								<img id="ess-grid-tiny-<?php echo $cmeta['handle']; ?>-img" src="<?php echo $var_src; ?>" <?php echo ($var_src == '') ? 'style="max-width:200px; display: none;margin:20px 0px 0px 250px;"' : ''; ?>>
        							</div>
        							<?php
        							break;
        					}
        					?>
        				</div>
        				<?php
        			}
        		}else{
        			_e('No metas available yet. Add some through the Custom Meta menu of Essential Grid.', EG_TEXTDOMAIN);
        			?><div style="clear:both; height:20px"></div><?php 			
        		}*/
        $elements = Essential_Grid_Item_Element::getElementsForDropdown();
        $p_lang = array('post' => __('Post', EG_TEXTDOMAIN), 'woocommerce' => __('WooCommerce', EG_TEXTDOMAIN));
        foreach ($elements as $type => $element) {
            ?>
								<!--<div class="ess-grid-tiny-elset-title">
									<?php 
            echo $p_lang[$type];
            ?>
								</div>-->
								<?php 
            foreach ($element as $handle => $name) {
                echo '<div class="ess-grid-tiny-' . $handle . '-wrap ess-grid-tiny-elset-row" style="display: none;"><div class="ess-grid-tiny-elset-label"  for="' . $handle . '">' . $name['name'] . ':</div><input name="ess-grid-tiny-' . $handle . '[]" value="" /></div>';
            }
        }
        ?>
						</div>
						<div style="clear:both"></div>
						<div style="width:100%;height:30px;"></div>						
				</div>
				
				<div class="ess-grid-tiny-custom-pictogram"><div class="dashicons dashicons-format-image"></div></div>
				<div class="esg-toolbutton esg-delete-item">
					<a href="javascript:void(0);" class="esg-tiny-delete-entry"><div class="dashicons dashicons-trash"></div></a>
				</div>
				<div class="esg-toolbutton esg-collapsme-item">
					<a href="javascript:void(0);" class="esg-tiny-collapsme-entry"><div class="dashicons dashicons-sort"></div></a>
				</div>
				<img class="esg-toolbarimg" src="">

			</div>
			<script type="text/javascript">
				<?php 
        $skin_layers = array();
        $all_skins = $skins_c->get_essential_item_skins();
        if (!empty($all_skins)) {
            foreach ($all_skins as $cskin) {
                $custom_layer_elements = array();
                if (isset($cskin['layers'])) {
                    foreach ($cskin['layers'] as $layer) {
                        if (@isset($layer['settings']['source'])) {
                            switch ($layer['settings']['source']) {
                                case 'post':
                                    $custom_layer_elements[@$layer['settings']['source-post']] = '';
                                    break;
                                case 'woocommerce':
                                    $custom_layer_elements[@$layer['settings']['source-woocommerce']] = '';
                                    break;
                            }
                        }
                    }
                }
                $skin_layers[$cskin['id']] = $custom_layer_elements;
            }
        }
        ?>
				
				var esg_tiny_skin_layers = jQuery.parseJSON(<?php 
        echo $base->jsonEncodeForClientSide($skin_layers);
        ?>
);
				
				
				// KRIKI SCRIPT 
				var esgCustomCollapser = function(bt,direction) {
					var	cp =  bt.closest('.esg-tiny-element'),
						cpitem = cp.find('.ess-grid-tiny-collapse-wrapper'),
						timg = cp.find('.esg-toolbarimg'),
						pimg = cp.find('.esg-tiny-preshow-img');
						
					if ((direction=="auto" && cpitem.hasClass("collapsed")) || direction=="open") {
					   cpitem.slideDown(200);
					   cpitem.removeClass("collapsed");
					   bt.removeClass("collapsed");
					   timg.removeClass("collapsed");
				   } else {
					   cpitem.slideUp(200);					   
					   cpitem.addClass("collapsed");
					   bt.addClass("collapsed");	
					   timg.addClass("collapsed");
					   jQuery.each(pimg,function(index,pimge) {
							if (jQuery(pimge).attr('src') !=undefined && jQuery(pimge).attr('src').length>0)
									timg.attr('src',jQuery(pimge).attr('src'));						   
					   })
					}
				}
				
				jQuery('body').on('click','.esg-toolbutton.esg-collapsme-item',function() {
					esgCustomCollapser(jQuery(this),"auto");
				});
				
					
				jQuery('.ess-mediaselector.collapseall').click(function() {
					var ca = jQuery(this);
					if (ca.hasClass("collapsed")) {
						jQuery('.esg-toolbutton.esg-collapsme-item').each(function() {
							esgCustomCollapser(jQuery(this),"open");
						})
						ca.removeClass("collapsed");
					} else {
						jQuery('.esg-toolbutton.esg-collapsme-item').each(function() {
							esgCustomCollapser(jQuery(this),"close");
						})
					
						ca.addClass("collapsed");						
					}				
				})

			</script>
		</div>
		<?php 
    }
Пример #20
0
 /**
  * output the demo skin html
  */
 public static function output_demo_skin_html($data)
 {
     $grid = new Essential_Grid();
     $base = new Essential_Grid_Base();
     $item_skin = new Essential_Grid_Item_Skin();
     if (!isset($data['postparams']['source-type'])) {
         //something is wrong, print error
         return array('error' => __('Something went wrong, this may have to do with Server limitations', EG_TEXTDOMAIN));
     }
     $html = '';
     $preview = '';
     $preview_type = $data['postparams']['source-type'] == 'custom' ? 'custom' : 'preview';
     $grid_id = isset($data['id']) && intval($data['id']) > 0 ? intval($data['id']) : '-1';
     ob_start();
     $grid->output_essential_grid($grid_id, $data, $preview_type);
     $html = ob_get_contents();
     ob_clean();
     ob_end_clean();
     $skin = $base->getVar($data['params'], 'entry-skin', 0, 'i');
     if ($skin > 0) {
         ob_start();
         $item_skin->init_by_id($skin);
         $item_skin->output_item_skin('custom');
         $preview = ob_get_contents();
         ob_clean();
         ob_end_clean();
     }
     return array('html' => $html, 'preview' => $preview);
 }
        ?>
"]</td>
						<td>
							<div class="btn-wrap-overview-<?php 
        echo $grid->id;
        ?>
">
								<a class="button-primary revgreen" href="<?php 
        echo Essential_Grid_Base::getViewUrl(Essential_Grid_Admin::VIEW_GRID_CREATE, 'create=' . $grid->id);
        ?>
"><i class="eg-icon-cog"></i><?php 
        _e("Settings", EG_TEXTDOMAIN);
        ?>
</a>
								<a class="button-primary revblue" href="<?php 
        echo Essential_Grid_Base::getViewUrl(Essential_Grid_Admin::VIEW_ITEM_SKIN_EDITOR, 'create=' . $skin_id);
        ?>
" target="_blank"><i class="eg-icon-palette"></i><?php 
        _e("Edit Skin", EG_TEXTDOMAIN);
        ?>
</a>
								<a class="button-primary revred eg-btn-delete-grid" id="eg-delete-<?php 
        echo $grid->id;
        ?>
" href="javascript:void(0)"><i class="eg-icon-trash"></i></a>
								<a class="button-primary revyellow eg-btn-duplicate-grid" id="eg-duplicate-<?php 
        echo $grid->id;
        ?>
" href="javascript:void(0)"><i class="eg-icon-picture"></i></a>
							</div>
						</td>
Пример #22
0
 /** 
  * return search result ID's
  * @since: 2.0
  */
 public static function output_search_result_ids($search, $grid_id = 0)
 {
     $grid_id = intval($grid_id);
     if ($search == '' || $grid_id === 0) {
         return __('Not found', EG_TEXTDOMAIN);
     }
     $grid = new Essential_Grid();
     if ($grid->init_by_id($grid_id) === false) {
         return __('Not found', EG_TEXTDOMAIN);
     }
     $base = new Essential_Grid_Base();
     $post_category = $grid->get_postparam_by_handle('post_category');
     $post_types = $grid->get_postparam_by_handle('post_types');
     $page_ids = explode(',', $grid->get_postparam_by_handle('selected_pages', '-1'));
     $start_sortby = $grid->get_param_by_handle('sorting-order-by-start', 'none');
     $start_sortby_type = $grid->get_param_by_handle('sorting-order-type', 'ASC');
     $max_entries = $grid->get_maximum_entries($grid);
     $cat_tax = Essential_Grid_Base::getCatAndTaxData($post_category);
     $additional_query = $grid->get_postparam_by_handle('additional-query', '');
     if ($additional_query !== '') {
         $additional_query .= '&s=' . $search;
     } else {
         $additional_query .= 's=' . $search;
     }
     $additional_query = wp_parse_args($additional_query);
     ob_start();
     $posts = Essential_Grid_Base::getPostsByCategory($grid_id, $cat_tax['cats'], $post_types, $cat_tax['tax'], $page_ids, $start_sortby, $start_sortby_type, $max_entries, $additional_query, false);
     ob_clean();
     ob_end_clean();
     if (empty($posts) || count($posts) === 0) {
         return __('Not found', EG_TEXTDOMAIN);
     }
     $ids = array();
     foreach ($posts as $post) {
         $ids[] = $post['ID'];
     }
     return $ids;
 }
Пример #23
0
 public function import_global_styles($import_global_styles, $check_append = true)
 {
     $base = new Essential_Grid_Base();
     $c_css = new Essential_Grid_Global_Css();
     $append = true;
     if ($check_append) {
         //check in $_POST if append or overwrite
         $do = $base->getVar($this->overwrite_data, 'global-styles-overwrite', 'append');
         $append = $do == 'append' ? true : false;
     }
     $import_global_styles = str_replace(array('\\n', '\\t'), array(chr(13), chr(9)), $import_global_styles);
     //remove first and last "
     if (substr($import_global_styles, 0, 1) == '"') {
         $import_global_styles = substr($import_global_styles, 1);
     }
     if (substr($import_global_styles, -1) == '"') {
         $import_global_styles = substr($import_global_styles, 0, -1);
     }
     $import_global_styles = preg_replace_callback('/\\\\u([0-9a-fA-F]{4})/', function ($match) {
         return mb_convert_encoding(pack('H*', $match[1]), 'UTF-8', 'UCS-2BE');
     }, $import_global_styles);
     if ($append) {
         //append
         $global_styles = $c_css->get_global_css_styles();
         $import_global_styles = $global_styles . $import_global_styles;
     }
     $c_css->set_global_css_styles($import_global_styles);
 }