function themify_builder_init() { global $ThemifyBuilder; if (class_exists('Themify_Builder')) { $ThemifyBuilder = new Themify_Builder(); if ($ThemifyBuilder->builder_check()) { $ThemifyBuilder->init(); } } // class_exists check }
function themify_builder_init() { global $ThemifyBuilder, $Themify_Builder_Layouts; if (class_exists('Themify_Builder')) { if (Themify_Builder_Model::builder_check()) { $Themify_Builder_Layouts = new Themify_Builder_Layouts(); $ThemifyBuilder = new Themify_Builder(); $ThemifyBuilder->init(); $themify_builder_plugin_compat = new Themify_Builder_Plugin_Compat(); $themify_builder_import_export = new Themify_Builder_Import_Export(); } } // class_exists check if (is_admin() && current_user_can('update_plugins')) { include THEMIFY_BUILDER_DIR . '/themify-builder-updater.php'; } }
public function save_data($builder_data, $post_id) { global $ThemifyBuilder; /* if it's serialized, convert to array */ if (is_serialized($builder_data)) { $builder_data = stripslashes_deep(unserialize($builder_data)); } $builder_data = self::array_map_deep($builder_data, 'wp_slash'); $builder_data = json_encode($builder_data); /* slashes are removed by update_post_meta, apply twice to protect slashes */ $builder_data = wp_slash($builder_data); /* save the data in json format */ update_post_meta($post_id, $this->meta_key, $builder_data); /* remove the old data format */ delete_post_meta($post_id, $ThemifyBuilder->meta_key); Themify_Builder::remove_cache($post_id); }
/** * Add inline CSS styles for animations * @since 2.2.7 */ public function add_builder_inline_css() { // Setup Animation self::$inview_selectors = apply_filters('themify_builder_animation_inview_selectors', array()); self::$new_selectors = apply_filters('themify_builder_create_animation_selectors', array()); $global_selectors = isset(self::$new_selectors['selectors']) ? self::$new_selectors['selectors'] : array(); $specific_selectors = isset(self::$new_selectors['specificSelectors']) ? array_keys(self::$new_selectors['specificSelectors']) : array(); $instyle_selectors = array_merge(self::$inview_selectors, $global_selectors, $specific_selectors); if (count($instyle_selectors) > 0) { $inline_style = '.js.csstransitions ' . join(', .js.csstransitions ', $instyle_selectors) . '{ visibility:hidden; }'; echo sprintf('<style>%s</style>', $inline_style); } }
/** * Check cache is disabled or builder is active or in admin * * return boolean */ public static function is_cache_activate() { $active = is_user_logged_in() && current_user_can('manage_options') || themify_get('setting-page_builder_cache') || is_admin() ? true : (class_exists('Themify_Builder') ? Themify_Builder::is_front_builder_activate() : FALSE); return apply_filters('themify_builder_is_cache_active', $active); }
/** * Hook to content filter to show builder output * @param $content * @return string */ function builder_show_on_front($content) { global $post, $wp_query, $wp_current_filter; // Exclude builder output in admin post list mode excerpt, Dont show builder on product single description if (is_admin() && !defined('DOING_AJAX') || is_post_type_archive() && !is_post_type_archive('product') || in_array('get_the_excerpt', $wp_current_filter) || post_password_required() || isset($wp_query->query_vars['product_cat']) || is_tax('product_tag') || is_singular('product') && 'product' == get_post_type()) { return $content; } if (is_post_type_archive('product') && get_query_var('paged') == 0 && $this->builder_is_plugin_active('woocommerce/woocommerce.php')) { $post = get_post(woocommerce_get_page_id('shop')); } if (!is_object($post)) { return $content; } $display = apply_filters('themify_builder_display', true, $post->ID); if (false === $display) { return $content; } // Infinite-loop prevention if (empty($this->post_ids)) { $this->post_ids[] = $post->ID; } elseif (in_array($post->ID, $this->post_ids)) { // we have already rendered this, go back. return $content; } // Builder display position $display_position = apply_filters('themify_builder_display_position', 'below', $post->ID); $this->post_ids[] = $post->ID; $builder_data = $this->get_builder_data($post->ID); if (!is_array($builder_data) || strpos($content, '#more-')) { $builder_data = array(); } self::$post_id = get_the_ID(); if ($this->in_the_loop) { $builder_output = $this->retrieve_template('builder-output-in-the-loop.php', array('builder_output' => $builder_data, 'builder_id' => $post->ID), '', '', false); } else { $builder_output = $this->retrieve_template('builder-output.php', array('builder_output' => $builder_data, 'builder_id' => $post->ID), '', '', false); } if ('above' == $display_position) { $content = $builder_output . $content; } else { $content .= $builder_output; } $this->post_ids = array_unique($this->post_ids); if (array_shift($this->post_ids) == $post->ID) { // the loop is finished, reset the ID list $this->post_ids = array(); } return $content; }
/** * Add inline CSS styles for animations * @since 2.2.7 */ public function add_builder_inline_css() { // Setup Animation self::$inview_selectors = apply_filters('themify_builder_animation_inview_selectors', array()); self::$new_selectors = apply_filters('themify_builder_create_animation_selectors', array()); $global_selectors = isset(self::$new_selectors['selectors']) ? self::$new_selectors['selectors'] : array(); $specific_selectors = isset(self::$new_selectors['specificSelectors']) ? array_keys(self::$new_selectors['specificSelectors']) : array(); $instyle_selectors = array_merge(self::$inview_selectors, $global_selectors, $specific_selectors); if (count($instyle_selectors) > 0) { // If there's animation only, load at least main styles and scripts add_action('wp_enqueue_scripts', array($this, 'load_templates_js_css')); $inline_style = '.js.csstransitions ' . join(', .js.csstransitions ', $instyle_selectors) . '{ visibility:hidden; }'; echo sprintf('<style>%s</style>', $inline_style); } }