Support » Plugin: WooCommerce » Remove "Add to cart" on home page

  • rblanda3

    (@rblanda3)


    On the home page of 192.185.181.124/~cupidsbox/ I would like to remove all the buttons under each of the best sellers products. We only want a button that says “view details” on each of the products. I did a lot of research and everyone says that this is theme related. I even followed a few instructions that removed the add to cart button (putting a blank add-to-cart.php in the woocommerce/loop directory but that didn’t do the trick. Again each product should ONLY have “View details” Button that brings the user to the single product page.

    https://wordpress.org/plugins/woocommerce/

Viewing 3 replies - 1 through 3 (of 3 total)
  • terrytsang

    (@terrytsang)

    Hi @rblanda3, you may follow this tutorial and change “Learn more” become “View details”.

    Thread Starter rblanda3

    (@rblanda3)

    This did not work. Whenever I update the functions.php the site breaks with a parse error. There are several functions.php in the site also. This site uses CHERRY FRAMEWORK. SHould i be updating the one in the Cherry Framework folder or the one in wp-includes directory? This is very frustrating.

    Here is the one from the Cherry Framework:

    <?php
    
    	/*
    
    	 * Set Proper Parent/Child theme paths for inclusion
    
    	 */
    
    	@define( 'PARENT_DIR', get_template_directory() );
    
    	@define( 'CHILD_DIR', get_stylesheet_directory() );
    
    	@define( 'PARENT_URL', get_template_directory_uri() );
    
    	@define( 'CHILD_URL', get_stylesheet_directory_uri() );
    
    	@define( 'CURRENT_THEME', getCurrentTheme() );
    
    	@define( 'CHERRY_VER', cherry_get_theme_version('CherryFramework') );
    
    	@define( 'FILE_WRITEABLE', is_writeable(PARENT_DIR.'/style.css'));
    
    	/**
    
    	*
    
    	* Variables array init
    
    	*
    
    	**/
    
    	$variablesArray = array(
    
    		'textColor'      => '#000000',
    
    		'bodyBackground' => '#000000',
    
    		'baseFontFamily' => '#000000',
    
    		'baseFontSize'   => '#000000',
    
    		'baseLineHeight' => '#000000',
    
    		'linkColor'      => '#000000',
    
    		'linkColorHover' => '#000000',
    
    		'mainBackground' => '#ffffff'
    
    		);
    
    	/**
    
    	*
    
    	* JS global variables
    
    	*
    
    	**/
    
    	function cherry_js_global_variables(){
    
    		$output = "<script>";
    
    		$output .="\n var system_folder = '".PARENT_URL."/admin/data_management/',";
    
    		$output .= "\n\t CHILD_URL ='" .CHILD_URL."',";
    
    		$output .= "\n\t PARENT_URL = '".PARENT_URL."', ";
    
    		$output .= "\n\t CURRENT_THEME = '".CURRENT_THEME."'";
    
    		$output .= "</script>";
    
    		echo $output;
    
    	}
    
    	add_action('wp_head', 'cherry_js_global_variables');
    
    	add_action('admin_head', 'cherry_js_global_variables');
    
    	/**
    
    	*
    
    	* Definition current theme
    
    	*
    
    	**/
    
    	function getCurrentTheme() {
    
    		if ( function_exists('wp_get_theme') ) {
    
    			$theme = wp_get_theme();
    
    			if ( $theme->exists() ) {
    
    				$theme_name = $theme->Name;
    
    			}
    
    		} else {
    
    			$theme_name = get_current_theme();
    
    		}
    
    		$theme_name = preg_replace("/\W/", "_", strtolower($theme_name) );
    
    		return $theme_name;
    
    	}
    
    	/**
    
    	*
    
    	* Definition theme version
    
    	* @param string $theme_name Directory name for the theme
    
    	*
    
    	**/
    
    	function cherry_get_theme_version($theme_name) {
    
    		if ( function_exists('wp_get_theme') ) {
    
    			$theme = wp_get_theme($theme_name);
    
    			if ( $theme->exists() ) {
    
    				$theme_ver = $theme->Version;
    
    			}
    
    		} else {
    
    			$theme_data = get_theme_data( get_theme_root() . '/' . $theme_name . '/style.css' );
    
    			$theme_ver  = $theme_data['Version'];
    
    		}
    
    		return $theme_ver;
    
    	}
    
    	/**
    
    	*
    
    	* Comment some value from variables.less
    
    	*
    
    	**/
    
    	if ( CURRENT_THEME != 'cherry' )
    
    		add_action('cherry_activation_hook', 'comment_child_var');
    
    	function comment_child_var() {
    
    		global $variablesArray;
    
    		$file = CHILD_DIR .'/bootstrap/less/variables.less';
    
    		if ( file_exists($file) ) {
    
    			$allVariablessArray = file($file);
    
    			foreach ($variablesArray as $key => $value) {
    
    				foreach ($allVariablessArray as $k => $v) {
    
    					$pos = strpos($v, $key);
    
    					if ( $pos!==false && $pos == 1 ) {
    
    						$allVariablessArray[$k] = '// ' . $v;
    
    						break;
    
    					}
    
    				}
    
    			}
    
    			file_put_contents($file, $allVariablessArray);
    
    		}
    
    	}
    
    	/**
    
    	 * Helper function to return the theme option value.
    
    	 * If no value has been saved, it returns $default.
    
    	 * Needed because options are saved as serialized strings.
    
    	 **/
    
    	if ( !function_exists( 'of_get_option' ) ) {
    
    		function of_get_option($name, $default = false) {
    
    			$optionsframework_settings = get_option('optionsframework');
    
    			// Gets the unique option id
    
    			$option_name = $optionsframework_settings['id'];
    
    			if ( get_option($option_name) ) {
    
    				$options = get_option($option_name);
    
    			}
    
    			if ( isset($options[$name]) ) {
    
    				return $options[$name];
    
    			} else {
    
    				return $default;
    
    			}
    
    		}
    
    	}
    
    	/**
    
    	*
    
    	* Unlink less cache files
    
    	*
    
    	**/
    
    	add_action('cherry_activation_hook', 'clean_less_cache');
    
    	function clean_less_cache() {
    
    		if ( CURRENT_THEME == 'cherry' ) {
    
    			$bootstrapInput	= PARENT_DIR .'/less/bootstrap.less';
    
    			$themeInput		= PARENT_DIR .'/less/style.less';
    
    		} else {
    
    			$bootstrapInput	= CHILD_DIR .'/bootstrap/less/bootstrap.less';
    
    			$themeInput		= CHILD_DIR .'/style.less';
    
    		}
    
    		$cacheFile1 = $bootstrapInput.".cache";
    
    		$cacheFile2 = $themeInput.".cache";
    
    		if (file_exists($cacheFile1)) unlink($cacheFile1);
    
    		if (file_exists($cacheFile2)) unlink($cacheFile2);
    
    	}
    
    	if ( (is_admin() && ($pagenow == "themes.php")) && FILE_WRITEABLE ) {
    
    		do_action('cherry_activation_hook');
    
    	}
    
    	if ( !function_exists('cherry_theme_setup')) {
    
    		function cherry_theme_setup() {
    
    			//Loading theme textdomain
    
    			load_theme_textdomain( CURRENT_THEME, PARENT_DIR . '/languages' );
    
    			//Localization functions
    
    			include_once (PARENT_DIR . '/includes/locals.php');
    
    			//Plugin Activation
    
    			include_once (CHILD_DIR . '/includes/register-plugins.php');
    
    			//Setup MotoPress
    
    			include_once (PARENT_DIR . '/includes/register-motopress.php');
    
    			//Include shop
    
    			if ( file_exists(get_stylesheet_directory().'/shop.php') ) {
    
    				include_once (CHILD_DIR . '/shop.php');
    
    			}
    
    		}
    
    		add_action('after_setup_theme', 'cherry_theme_setup');
    
    	}
    
    	//WPML compatibility
    
    	//WPML filter for correct posts IDs for the current language Solution
    
    	if ( function_exists( 'wpml_get_language_information' )) {
    
    		update_option('suppress_filters', 0);
    
    	} else {
    
    		update_option('suppress_filters', 1);
    
    	}
    
    	//Register text for translation
    
    	function cherry_wpml_translate_filter( $value, $name ) {
    
    		return icl_translate( 'cherry', $name, $value );
    
    	}
    
    	//Check if WPML is activated
    
    	if ( defined( 'ICL_SITEPRESS_VERSION' ) ) {
    
    		add_filter( 'cherry_text_translate', 'cherry_wpml_translate_filter', 10, 2 );
    
    	}
    
    	//Loading Custom function
    
    	include_once (CHILD_DIR . '/includes/custom-function.php');
    
    	//Loading jQuery and Scripts
    
    	include_once (PARENT_DIR . '/includes/theme-scripts.php');
    
    	//Sidebar
    
    	include_once (CHILD_DIR . '/includes/sidebar-init.php');
    
    	//Theme initialization
    
    	include_once (CHILD_DIR . '/includes/theme-init.php');
    
    	//Additional function
    
    	include_once (PARENT_DIR . '/includes/theme-function.php');
    
    	//Aqua Resizer for image cropping and resizing on the fly
    
    	include_once (PARENT_DIR . '/includes/aq_resizer.php');
    
    	//Add the pagemeta
    
    	include_once (PARENT_DIR . '/includes/theme-pagemeta.php');
    
    	//Add the postmeta
    
    	include_once (PARENT_DIR . '/includes/theme-postmeta.php');
    
    	//Add the postmeta to Portfolio posts
    
    	include_once (PARENT_DIR . '/includes/theme-portfoliometa.php');
    
    	//Add the postmeta to Slider posts
    
    	include_once (PARENT_DIR . '/includes/theme-slidermeta.php');
    
    	//Add the postmeta to Testimonials
    
    	include_once (PARENT_DIR . '/includes/theme-testimeta.php');
    
    	//Add the postmeta to Our Team posts
    
    	include_once (PARENT_DIR . '/includes/theme-teammeta.php');
    
    	//Loading options.php for theme customizer
    
    	include_once (CHILD_DIR . '/options.php');
    
    	include_once (PARENT_DIR . '/framework_options.php');
    
    	//Framework Data Management
    
    	include_once (PARENT_DIR . '/admin/data_management/data_management_interface.php');
    
    	//SEO Settings
    
    	include_once (PARENT_DIR . '/admin/seo/seo_settings_page.php');
    
    	//WP Pointers
    
    	include_once (PARENT_DIR . '/includes/class.wp-help-pointers.php');
    
    	//Embedding LESS compile
    
    	if ( !class_exists('lessc') ) {
    
    		include_once (PARENT_DIR .'/includes/lessc.inc.php');
    
    	}
    
    	include_once (PARENT_DIR .'/includes/less-compile.php');
    
    	// removes detailed login error information for security
    
    	add_filter('login_errors',create_function('$a', "return null;"));
    
    	/*
    
    	 * Loads the Options Panel
    
    	 *
    
    	 * If you're loading from a child theme use stylesheet_directory
    
    	 * instead of template_directory
    
    	 */
    
    	if ( !function_exists( 'optionsframework_init' ) ) {
    
    		define( 'OPTIONS_FRAMEWORK_DIRECTORY', PARENT_URL . '/admin/' );
    
    		include_once dirname( __FILE__ ) . '/admin/options-framework.php';
    
    	}
    
    	/*
    
    	 * Removes Trackbacks from the comment count
    
    	 *
    
    	 */
    
    	if ( !function_exists('comment_count') ) {
    
    		add_filter('get_comments_number', 'comment_count', 0);
    
    		function comment_count( $count ) {
    
    			if ( ! is_admin() ) {
    
    				global $id;
    
    				$args = 'status=approve&post_id=' . $id;
    
    				$comments = get_comments( $args, ARRAY_A );
    
    				$comments_by_type = separate_comments( $comments );
    
    				return count($comments_by_type['comment']);
    
    			} else {
    
    				return $count;
    
    			}
    
    		}
    
    	}
    
    	/*
    
    	 * Post Formats
    
    	 *
    
    	 */
    
    	$formats = array(
    
    				'aside',
    
    				'gallery',
    
    				'link',
    
    				'image',
    
    				'quote',
    
    				'audio',
    
    				'video');
    
    	add_theme_support( 'post-formats', $formats );
    
    	add_post_type_support( 'post', 'post-formats' );
    
    	/*
    
    	 * Custom excpert length
    
    	 *
    
    	 */
    
    	if(!function_exists('new_excerpt_length')) {
    
    		function new_excerpt_length($length) {
    
    			return 60;
    
    		}
    
    		add_filter('excerpt_length', 'new_excerpt_length');
    
    	}
    
    	add_filter( 'the_excerpt', 'do_shortcode' );
    
    	// enable shortcodes in sidebar
    
    	add_filter('widget_text', 'do_shortcode');
    
    	// custom excerpt ellipses for 2.9+
    
    	if(!function_exists('custom_excerpt_more')) {
    
    		function custom_excerpt_more($more) {
    
    			return theme_locals("read_more").' &raquo;';
    
    		}
    
    		add_filter('excerpt_more', 'custom_excerpt_more');
    
    	}
    
    	// no more jumping for read more link
    
    	if(!function_exists('no_more_jumping')) {
    
    		function no_more_jumping($post) {
    
    			return '&nbsp;<a href="'.get_permalink().'" class="read-more">'.theme_locals("continue_reading").'</a>';
    
    		}
    
    		add_filter('excerpt_more', 'no_more_jumping');
    
    	}
    
    	// category id in body and post class
    
    	if(!function_exists('category_id_class')) {
    
    		function category_id_class($classes) {
    
    			global $post;
    
    			foreach((get_the_category()) as $category)
    
    				$classes [] = 'cat-' . $category->cat_ID . '-id';
    
    				return $classes;
    
    		}
    
    		add_filter('post_class', 'category_id_class');
    
    		add_filter('body_class', 'category_id_class');
    
    	}
    
    	// Threaded Comments
    
    	if(!function_exists('enable_threaded_comments')) {
    
    		function enable_threaded_comments() {
    
    			if (!is_admin()) {
    
    				if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) {
    
    					wp_enqueue_script('comment-reply');
    
    				}
    
    			}
    
    		}
    
    		add_action('get_header', 'enable_threaded_comments');
    
    	}
    
    	//remove auto loading rel=next post link in header
    
    	remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');
    
    	// WP Pointers
    
    	if (!function_exists('myHelpPointers')) {
    
    		add_action('admin_enqueue_scripts', 'myHelpPointers');
    
    		function myHelpPointers() {
    
    			//First we define our pointers
    
    			$pointers = array(
    
    				array(
    
    					'id'       => 'xyz1', // unique id for this pointer
    
    					'screen'   => 'themes', // this is the page hook we want our pointer to show on
    
    					'target'   => '#toplevel_page_options-framework', // the css selector for the pointer to be tied to, best to use ID's
    
    					'title'    => theme_locals("import_sample_data"),
    
    					'content'  => theme_locals("import_sample_data_desc"),
    
    					'position' => array(
    
    										'edge'   => 'left', //top, bottom, left, right
    
    										'align'  => 'left', //top, bottom, left, right, middle
    
    										)
    
    					),
    
    				array(
    
    					'id'       => 'xyz2', // unique id for this pointer
    
    					'screen'   => 'toplevel_page_options-framework', // this is the page hook we want our pointer to show on
    
    					'target'   => '#toplevel_page_cherry-plugin-page', // the css selector for the pointer to be tied to, best to use ID's
    
    					'title'    => theme_locals("import_sample_data"),
    
    					'content'  => theme_locals("import_sample_data_desc"),
    
    					'position' => array(
    
    										'edge'   => 'left', //top, bottom, left, right
    
    										'align'  => 'left', //top, bottom, left, right, middle
    
    										)
    
    					)
    
    				// more as needed
    
    			);
    
    			//Now we instantiate the class and pass our pointer array to the constructor
    
    			$myPointers = new WP_Help_Pointer($pointers);
    
    		};
    
    	}
    
    	/*
    
    	 * Navigation with description
    
    	 *
    
    	 */
    
    	if (! class_exists('description_walker')) {
    
    		class description_walker extends Walker_Nav_Menu {
    
    			function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
    
    				global $wp_query;
    
    				$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
    
    				$class_names = $value = '';
    
    				$classes = empty( $item->classes ) ? array() : (array) $item->classes;
    
    				$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
    
    				$class_names = ' class="'. esc_attr( $class_names ) . '"';
    
    				$output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';
    
    				$attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
    
    				$attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
    
    				$attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
    
    				$attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';
    
    				$description  = ! empty( $item->description ) ? '<span class="desc">'.esc_attr( $item->description ).'</span>' : '';
    
    				if($depth != 0) {
    
    					$description = $append = $prepend = "";
    
    				}
    
    				$item_output = $args->before;
    
    				$item_output .= '<a'. $attributes .'>';
    
    				$item_output .= $args->link_before;
    
    				if (isset($prepend))
    
    					$item_output .= $prepend;
    
    				$item_output .= apply_filters( 'the_title', $item->title, $item->ID );
    
    				if (isset($append))
    
    					$item_output .= $append;
    
    				$item_output .= $description.$args->link_after;
    
    				$item_output .= '</a>';
    
    				$item_output .= $args->after;
    
    				$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
    
    			}
    
    		}
    
    	}
    
    	/*
    
    	 * Cherry update
    
    	 */
    
    	$cherryTemplates = array(
    
    		'404.php',
    
    		'archive.php',
    
    		'author.php',
    
    		'category.php',
    
    		'index.php',
    
    		'page.php',
    
    		'page-archives.php',
    
    		'page-faq.php',
    
    		'page-fullwidth.php',
    
    		'page-home.php',
    
    		'page-Portfolio2Cols-filterable.php',
    
    		'page-Portfolio3Cols-filterable.php',
    
    		'page-Portfolio4Cols-filterable.php',
    
    		'page-testi.php',
    
    		'search.php',
    
    		'single.php',
    
    		'single-portfolio.php',
    
    		'single-team.php',
    
    		'single-testi.php',
    
    		'tag.php'
    
    	);
    
    	$headerFooterPattern = '/(\<header.*?\>.*?\<\/header\>|\<footer.*?\>.*?\<\/footer\>)/is';
    
    	if (is_user_logged_in() && current_user_can('update_themes')) {
    
    		$updateErrors = array();
    
    		$oldCherryVersion = get_option('cherry_version', '1.0');
    
    		$currentCherryVersion = getCherryVersion($updateErrors);
    
    		$cherryV2 = '2.0';
    
    		$cherryForceUpdate = (bool) get_option('cherry_force_update', false);
    
    		if (version_compare($oldCherryVersion, $cherryV2) == -1 || $cherryForceUpdate) {
    
    			writeLog(PHP_EOL . date('Y-m-d H:i:s'));
    
    			writeLog('Old CherryFramework version: ' . $oldCherryVersion);
    
    			writeLog('Current CherryFramework version: ' . $currentCherryVersion);
    
    			writeLog('Force update: ' . (int) $cherryForceUpdate);
    
    			cherryUpdate($cherryTemplates, $headerFooterPattern, $updateErrors);
    
    			//changeChildTheme
    
    			changeChildTheme($updateErrors);
    
    			//end changeChildTheme
    
    			if (empty($updateErrors)) {
    
    				update_option('cherry_version', $currentCherryVersion);
    
    				update_option('cherry_force_update', 0);
    
    			}
    
    		}
    
    	}
    
    	function getCherryVersion(&$updateErrors) {
    
    		$style = PARENT_DIR . '/style.css';
    
    		$themeVersion = 0;
    
    		if (function_exists('wp_get_theme')) {
    
    			$theme = wp_get_theme(get_option('template', 'CherryFramework'));
    
    			if (file_exists($style) && $theme->exists()) {
    
    				$themeVersion = $theme->Version;
    
    			} else {
    
    				$updateErrors[] = $style . ' does not exist';
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		} elseif (function_exists('get_theme_data')) {
    
    			if (file_exists($style)) {
    
    				$theme = get_theme_data($style);
    
    				$themeVersion = $theme['Version'];
    
    			} else {
    
    				$updateErrors[] = $style . ' does not exist';
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		} else {
    
    			if (file_exists($style)) {
    
    				$content = file_get_contents($style);
    
    				if ($content) {
    
    					$pattern = '/\s*version\s*:\s*([^\n]+)\s*/is';
    
    					preg_match($pattern, $content, $matches);
    
    					if (!empty($matches[1])) {
    
    						$themeVersion = trim($matches[1]);
    
    					}
    
    				} else {
    
    					$updateErrors[] = 'Failed to read ' . $style;
    
    					writeLog('Failed to read ' . $style);
    
    				}
    
    			} else {
    
    				$updateErrors[] = $style . ' does not exist';
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		}
    
    		return $themeVersion;
    
    	}
    
    	function isCherryChildTheme($themePath, $name, &$updateErrors) {
    
    		$style = $themePath . '/style.css';
    
    		$themeTemplate = false;
    
    		if (function_exists('wp_get_theme')) {
    
    			$theme = wp_get_theme($name);
    
    			if ($theme->exists()) {
    
    				if ($theme->Stylesheet != $theme->Template) {
    
    					$themeTemplate = $theme->Template;
    
    				}
    
    			} else {
    
    				$updateErrors[] = 'Theme ' . $theme->Name . ' does not exist';
    
    				writeLog('Theme ' . $theme->Name . ' does not exist');
    
    			}
    
    		} elseif (function_exists('get_theme_data')) {
    
    			$theme = get_theme_data($style);
    
    			$themeTemplate = $theme['Template'];
    
    		} else {
    
    			$content = file_get_contents($style);
    
    			if ($content) {
    
    				$pattern = '/\s*template\s*:\s*([^\n]+)\s*/is';
    
    				preg_match($pattern, $content, $matches);
    
    				if (!empty($matches[1])) {
    
    					$themeTemplate = trim($matches[1]);
    
    				}
    
    			} else {
    
    				$updateErrors[] = 'Failed to read ' . $style;
    
    				writeLog('Failed to read ' . $style);
    
    			}
    
    		}
    
    		return ($themeTemplate == 'CherryFramework') ? true : false;
    
    	}
    
    	function getHeaderFooterCode($headerFooterPattern) {
    
    		$headerFooter = array('header', 'footer');
    
    		$headerFooterCode = array('header' => null, 'footer' => null);
    
    		foreach ($headerFooter as $name) {
    
    			$filePath = PARENT_DIR . '/' . $name . '.php';
    
    			if (file_exists($filePath)) {
    
    				$content = file_get_contents($filePath);
    
    				if ($content) {
    
    					$matchesCount = preg_match($headerFooterPattern, $content, $matches);
    
    					if ($matchesCount == 1 && !empty($matches[0])) {
    
    						$headerFooterCode[$name] = $matches[0];
    
    					} else {
    
    						$updateErrors[] = 'header|footer code not found in ' . $filePath;
    
    						writeLog('header|footer code not found in ' . $filePath);
    
    					}
    
    				} else {
    
    					$updateErrors[] = 'Failed to read ' . $filePath;
    
    					writeLog('Failed to read ' . $filePath);
    
    				}
    
    			} else {
    
    				$updateErrors[] = $filePath . ' does not exist';
    
    				writeLog($filePath . ' does not exist');
    
    			}
    
    		}
    
    		return $headerFooterCode;
    
    	}
    
    	function backupFile($templatePath) {
    
    		return copy($templatePath, $templatePath . '.bak');
    
    	}
    
    	function writeLog($message) {
    
    		$logFile = PARENT_DIR . '/update.log';
    
    		if (is_writable(PARENT_DIR)) {
    
    			file_put_contents($logFile, $message . PHP_EOL, FILE_APPEND);
    
    		}
    
    	}
    
    	function cherryUpdate($cherryTemplates, $headerFooterPattern, &$updateErrors) {
    
    		$themesPath = get_theme_root();
    
    		$skip = array('.', '..', 'CherryFramework', 'twentytwelve', 'twentyeleven', 'twentyten', 'index.php');
    
    		$themes = array_diff(scandir($themesPath), $skip);
    
    		if (!empty($themes)) {
    
    			foreach ($themes as $theme) {
    
    				$themePath = $themesPath . '/' . $theme;
    
    				if (is_dir($themePath) && file_exists($themePath . '/style.css')) {
    
    					$isCherryChildTheme = isCherryChildTheme($themePath, $theme, $updateErrors);
    
    					if ($isCherryChildTheme) {
    
    						if (is_writable($themePath)) {
    
    							writeLog(PHP_EOL . 'Child theme: ' . $themePath);
    
    							$files = scandir($themePath);
    
    							$themeTemplates = array_intersect($files, $cherryTemplates);
    
    							if (!empty($themeTemplates)) {
    
    								foreach ($themeTemplates as $template) {
    
    									$templatePath = $themePath . '/' . $template;
    
    									if (is_writable($templatePath)) {
    
    										$content = file_get_contents($templatePath);
    
    										if ($content) {
    
    											$headerFooterMatchesCount = preg_match_all($headerFooterPattern, $content, $headerFooterMatches);
    
    											if ($headerFooterMatchesCount > 0) {
    
    												$backupFile = backupFile($templatePath);
    
    												if ($backupFile) {
    
    													writeLog('Backup ' . $templatePath);
    
    													$content = preg_replace($headerFooterPattern, '', $content, -1, $headerFooterReplaceCount);
    
    													if (!is_null($content) && $headerFooterReplaceCount > 0) {
    
    														writeLog('Replace ' . $headerFooterReplaceCount . ' header|footer');
    
    														if (file_put_contents($templatePath, $content)) {
    
    															writeLog('Save ' . $templatePath);
    
    														} else {
    
    															$updateErrors[] = 'Failed to save ' . $templatePath;
    
    															writeLog('Failed to save ' . $templatePath);
    
    														}
    
    													}
    
    												} else {
    
    													$updateErrors[] = 'Failed to backup ' . $templatePath;
    
    													writeLog('Failed to backup ' . $templatePath);
    
    												}
    
    											}
    
    										} else {
    
    											$updateErrors[] = 'Failed to read ' . $templatePath;
    
    											writeLog('Failed to read ' . $templatePath);
    
    										}
    
    									} else {
    
    										$updateErrors[] = $templatePath . ' is not writable';
    
    										writeLog($templatePath . ' is not writable');
    
    									}
    
    								}
    
    							}
    
    							$headerFooter = array_intersect($files, array('header.php', 'footer.php'));
    
    							if (!empty($headerFooter)) {
    
    								$headerFooterCode = getHeaderFooterCode($headerFooterPattern);
    
    								if (!is_null($headerFooterCode['header']) && !is_null($headerFooterCode['footer'])) {
    
    									foreach ($headerFooter as $file) {
    
    										$filePath = $themePath . '/' . $file;
    
    										if (is_writable($filePath)) {
    
    											$content = file_get_contents($filePath);
    
    											if ($content) {
    
    												$headerFooterMatchesCount = preg_match_all($headerFooterPattern, $content, $headerFooterMatches);
    
    												if ($headerFooterMatchesCount === 0) {
    
    													$backupFile = backupFile($filePath);
    
    													if ($backupFile) {
    
    														writeLog('Backup ' . $filePath);
    
    														if ($file == 'header.php') {
    
    															$content .= $headerFooterCode['header'];
    
    														} elseif ($file == 'footer.php') {
    
    															$content = $headerFooterCode['footer'] . $content;
    
    														}
    
    														writeLog('Add header|footer code in ' . $filePath);
    
    														if (file_put_contents($filePath, $content)) {
    
    															writeLog('Save ' . $filePath);
    
    														} else {
    
    															$updateErrors[] = 'Failed to save ' . $filePath;
    
    															writeLog('Failed to save ' . $filePath);
    
    														}
    
    													} else {
    
    														$updateErrors[] = 'Failed to backup ' . $filePath;
    
    														writeLog('Failed to backup ' . $filePath);
    
    													}
    
    												}
    
    											} else {
    
    												$updateErrors[] = 'Failed to read ' . $filePath;
    
    												writeLog('Failed to read ' . $filePath);
    
    											}
    
    										} else {
    
    											$updateErrors[] = $filePath . ' is not writable';
    
    											writeLog($filePath . ' is not writable');
    
    										}
    
    									}
    
    								}
    
    							}
    
    						} else {
    
    							$updateErrors[] = $themePath . ' is not writable';
    
    							writeLog($themePath . ' is not writable');
    
    						}
    
    					}
    
    				}
    
    			}
    
    		}
    
    	}
    
    //changeChildTheme
    
    	function changeChildTheme(&$updateErrors){
    
    		$themesPath = get_theme_root();
    
    		$skip = array('.', '..', 'CherryFramework', 'twentytwelve', 'twentyeleven', 'twentyten', 'index.php');
    
    		$themes = array_diff(scandir($themesPath), $skip);
    
    		if (!empty($themes)) {
    
    			foreach ($themes as $theme) {
    
    				$themePath = $themesPath . '/' . $theme;
    
    				if (is_dir($themePath) && file_exists($themePath . '/style.css')) {
    
    					$isCherryChildTheme = isCherryChildTheme($themePath, $theme, $updateErrors);
    
    					if ($isCherryChildTheme) {
    
    						if (is_writable($themePath)) {
    
    							unset($slider_in_header, $slider_in_page_home, $pahe_home_content);
    
    							writeLog(PHP_EOL . 'Child theme: ' . $themePath);
    
    							$files = scandir($themePath);
    
    							$header_php = array_intersect($files, array('header.php'));
    
    							if (!empty($header_php)) {
    
    								$templatePath = $themePath . '/header.php';
    
    								$content = file_get_contents($templatePath);
    
    								if (stripos($content, '"static/static-slider"')!==false) {
    
    									$slider_in_header = true;
    
    								}
    
    							}
    
    							if(!isset($slider_in_header)){
    
    								if (is_dir($themePath."/wrapper")){
    
    									$nestedFiles = scandir($themePath."/wrapper");
    
    									$header_wrapper_php = array_intersect($nestedFiles, array('wrapper-header.php'));
    
    									if (!empty($header_wrapper_php)) {
    
    										$header_wrapper_php_path = $themePath . '/wrapper/wrapper-header.php';
    
    										$content = file_get_contents($header_wrapper_php_path);
    
    										if (stripos($content, '"static/static-slider"')!==false) {
    
    											$slider_in_header = true;
    
    										}
    
    									}
    
    								}
    
    							}
    
    							if(!isset($slider_in_header)){
    
    								$page_home_php = array_intersect($files, array('page-home.php'));
    
    								if (!empty($page_home_php)) {
    
    									$templatePath = $themePath . '/page-home.php';
    
    									$content = file($templatePath);
    
    									for ($i=0, $arrayCount = count($content); $i < $arrayCount ; $i++) {
    
    										if(stripos($content[$i], '"static/static-slider"')!==false){
    
    											$slider_in_page_home = $i;
    
    										}
    
    										if(stripos($content[$i], '"page-home.php"')!==false){
    
    											$pahe_home_content = $i;
    
    										}
    
    									}
    
    									if(!isset($slider_in_page_home)){
    
    										array_splice($content, $pahe_home_content+1, 0, "\t<div class=\"row\">\n\t\t<div class=\"span12\" data-motopress-type=\"static\" data-motopress-static-file=\"static/static-slider.php\">\n\t\t\t<?php get_template_part(\"static/static-slider\"); ?>\n\t\t</div>\n\t</div>\n");
    
    										writeLog('Change page-home.php');
    
    										if (file_put_contents($templatePath, $content)) {
    
    											writeLog('Save ' . $templatePath);
    
    										} else {
    
    											$updateErrors[] = 'Failed to save ' . $templatePath;
    
    											writeLog('Failed to save ' . $templatePath);
    
    										}
    
    									}
    
    								}
    
    							}
    
    							$stylesheet = array_intersect($files, array('style.css'));
    
    							$stylePath = $themePath . '/style.css';
    
    							if (!empty($stylesheet)) {
    
    								$styleContent = file($stylePath);
    
    								if ($styleContent) {
    
    									for ($i=0, $arrayCount = count($styleContent); $i < $arrayCount ; $i++) {
    
    										if(stripos($styleContent[$i], "/*--")!==false){
    
    											$styleContentChange = array();
    
    										}
    
    										if(isset($styleContentChange)){
    
    											$styleContentChange[$i] = $styleContent[$i];
    
    										}
    
    										if(stripos($styleContent[$i], "--*/")!==false){
    
    											break;
    
    										}
    
    									}
    
    									array_push($styleContentChange, "\n/* ----------------------------------------\n\tPlease, You may put custom CSS here\n---------------------------------------- */\n");
    
    									if (file_put_contents($stylePath, $styleContentChange)) {
    
    										writeLog('Save ' . $stylePath);
    
    									} else {
    
    										$updateErrors[] = 'Failed to save ' . $stylePath;
    
    										writeLog('Failed to save ' . $stylePath);
    
    									}
    
    								} else {
    
    									$updateErrors[] = 'Failed to read ' . $stylesheet;
    
    									writeLog('Failed to read ' . $stylesheet);
    
    								}
    
    							}
    
    							if (is_dir($themePath."/static")){
    
    								$nestedFiles = scandir($themePath."/static");
    
    								$staticSlider = array_intersect($nestedFiles, array('static-slider.php'));
    
    								$staticSliderPath = $themePath . '/static/static-slider.php';
    
    								unset($sliderStatic, $new_function);
    
    								if (!empty($staticSlider)) {
    
    									$backupFileStatic = backupFile($staticSliderPath);
    
    									if ($backupFileStatic) {
    
    											$staticSliderContent = file($staticSliderPath);
    
    											if ($staticSliderContent) {
    
    												$static_slider_dom_1 = "<?php if(of_get_option('slider_type') != 'none_slider'){ ?>\n";
    
    												$static_slider_dom_2 = "\t<?php get_slider_template_part(); ?>\n";
    
    												$static_slider_dom_3 = "\n<?php }else{ ?>\n\t<div class=\"slider_off\"></div>\n<?php } ?>\n";
    
    												for ($i=0, $arrayCount = count($staticSliderContent); $i < $arrayCount ; $i++) {
    
    													if(stripos($staticSliderContent[$i], "get_template_part('slider')")!==false){
    
    														$sliderStatic = $i;
    
    													}
    
    													if(stripos($staticSliderContent[$i], "get_slider_template_part")!==false){
    
    														$new_function = $i;
    
    													}
    
    												}
    
    												if(!isset($sliderStatic) && !isset($new_function)){
    
    													$staticSliderContent = "<?php /* Static Name: Slider */ ?>\n<?php if(of_get_option('slider_type') != 'none_slider'){ ?>\n\t<div id=\"slider-wrapper\" class=\"slider\">\n\t\t<div class=\"container\">\n\t\t\t<?php get_slider_template_part(); ?>\n\t\t</div>\n\t</div><!-- .slider -->\n<?php }else{ ?>\n\t<div class=\"slider_off\"><!--slider off--></div>\n<?php } ?>";
    
    												}else{
    
    													if(!isset($new_function)){
    
    														$staticSliderContent[$sliderStatic] = $static_slider_dom_2;
    
    														array_splice($staticSliderContent, 1, 0, $static_slider_dom_1);
    
    														array_push($staticSliderContent, $static_slider_dom_3);
    
    													}
    
    												}
    
    												if (file_put_contents($staticSliderPath, $staticSliderContent)) {
    
    													writeLog('Save ' . $staticSliderPath);
    
    												} else {
    
    													$updateErrors[] = 'Failed to save ' . $staticSliderPath;
    
    													writeLog('Failed to save ' . $staticSliderPath);
    
    												}
    
    											} else {
    
    												$updateErrors[] = 'Failed to read ' . $staticSlider;
    
    												writeLog('Failed to read ' . $staticSlider);
    
    											}
    
    									}else {
    
    										$updateErrors[] = 'Failed to backup ' . $staticSliderPath;
    
    										writeLog('Failed to backup ' . $staticSliderPath);
    
    									}
    
    								}
    
    							}
    
    						} else {
    
    							$updateErrors[] = $themePath . ' is not writable';
    
    							writeLog($themePath . ' is not writable');
    
    						}
    
    					}
    
    				}
    
    			}
    
    		}
    
    	};
    
    //end changeChildTheme
    
    	if (has_action('after_switch_theme')) {
    
    		add_action('after_switch_theme', 'activateCherryForceUpdate', 10, 0);
    
    	} else {
    
    		if (is_admin() && isset($_GET['activated']) && $pagenow == 'themes.php') {
    
    			activateCherryForceUpdate();
    
    		}
    
    	}
    
    	function activateCherryForceUpdate() {
    
    		global $cherryTemplates;
    
    		global $headerFooterPattern;
    
    		$style = CHILD_DIR . '/style.css';
    
    		$themeTemplate = false;
    
    		if (function_exists('wp_get_theme')) {
    
    			$theme = wp_get_theme();
    
    			if (file_exists($style) && $theme->exists()) {
    
    				if ($theme->Stylesheet != $theme->Template) {
    
    					$themeTemplate = $theme->Template;
    
    				}
    
    			} else {
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		} elseif (function_exists('get_theme_data')) {
    
    			if (file_exists($style)) {
    
    				$theme = get_theme_data($style);
    
    				$themeTemplate = $theme['Template'];
    
    			} else {
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		} else {
    
    			if (file_exists($style)) {
    
    				$content = file_get_contents($style);
    
    				if ($content) {
    
    					$pattern = '/\s*template\s*:\s*([^\n]+)\s*/is';
    
    					preg_match($pattern, $content, $matches);
    
    					if (!empty($matches[1])) {
    
    						$themeTemplate = trim($matches[1]);
    
    					}
    
    				} else {
    
    					writeLog('Failed to read ' . $style);
    
    				}
    
    			} else {
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		}
    
    		if ($themeTemplate == 'CherryFramework') {
    
    			$themePath = get_stylesheet_directory();
    
    			$files = scandir($themePath);
    
    			$themeTemplates = array_intersect($files, $cherryTemplates);
    
    			$cherryForceUpdate = false;
    
    			if (!empty($themeTemplates)) {
    
    				foreach ($themeTemplates as $template) {
    
    					$templatePath = $themePath . '/' . $template;
    
    					$content = file_get_contents($templatePath);
    
    					if ($content) {
    
    						$headerFooterMatchesCount = preg_match($headerFooterPattern, $content);
    
    						if ($headerFooterMatchesCount == 1) {
    
    							$cherryForceUpdate = true;
    
    							break;
    
    						}
    
    					} else {
    
    						writeLog('Failed to read ' . $templatePath);
    
    					}
    
    				}
    
    			}
    
    			if ($cherryForceUpdate) {
    
    				update_option('cherry_force_update', 1);
    
    			} else {
    
    				update_option('cherry_force_update', 0);
    
    			}
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  slider function
    
    //------------------------------------------------------
    
    	if (!function_exists("my_post_type_slider")) {
    
    		function my_post_type_slider() {
    
    			register_post_type( 'slider',
    
    				array(
    
    					'label'               => theme_locals("slides"),
    
    					'singular_label'      => theme_locals("slides"),
    
    					'_builtin'            => false,
    
    					'exclude_from_search' => true, // Exclude from Search Results
    
    					'capability_type'     => 'page',
    
    					'public'              => true,
    
    					'show_ui'             => true,
    
    					'show_in_nav_menus'   => false,
    
    					'rewrite' => array(
    
    								'slug'       => 'slide-view',
    
    								'with_front' => FALSE,
    
    					),
    
    					'query_var' => "slide", // This goes to the WP_Query schema
    
    					'menu_icon' => PARENT_URL . '/includes/images/icon_slides.png',
    
    					'supports'  => array(
    
    									'title',
    
    									// 'custom-fields',
    
    									'thumbnail'
    
    					)
    
    				)
    
    			);
    
    		}
    
    		add_action('init', 'my_post_type_slider');
    
    	}
    
    	if (!function_exists("get_slider_template_part")) {
    
    		function get_slider_template_part() {
    
    			switch (of_get_option('slider_type')) {
    
    				case "accordion_slider":
    
    					$slider_type = "accordion";
    
    				break;
    
    				default:
    
    					$slider_type = "slider";
    
    			}
    
    			return get_template_part($slider_type);
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  Warning notice
    
    //------------------------------------------------------
    
    	add_action( 'admin_notices', 'warning_notice' );
    
    	function warning_notice() {
    
    		global $pagenow;
    
    		$pageHidden = array('admin.php');
    
    		if (!get_user_meta(get_current_user_id(), '_wp_hide_notice', true) && is_admin() && !FILE_WRITEABLE && !in_array($pagenow, $pageHidden)) {
    
    			printf('<div class="updated"><strong><p>'.theme_locals('warning_notice_2').'</p><p>'.theme_locals('warning_notice_3').'</p><p><a href="'.esc_url(add_query_arg( 'wp_nag', wp_create_nonce( 'wp_nag' ))).'">'.theme_locals('dismiss_notice').'</a></p></strong></div>');
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  Post Meta
    
    //------------------------------------------------------
    
    	$global_meta_elements = array();
    
    	function get_post_metadata( $args = array() ) {
    
    		global $global_meta_elements;
    
    		if(array_key_exists('meta_elements', $args)){
    
    			$global_meta_elements = array_unique(array_merge($global_meta_elements, $args['meta_elements']));
    
    		}
    
    		$meta_elements_empty  = isset($args['meta_elements']) ? false : true ;
    
    		$defaults = array(
    
    						'meta_elements' =>  array('start_unite', 'date', 'author', 'permalink', 'end_unite', 'start_unite', 'categories', 'tags', 'end_unite', 'start_unite', 'comment', 'views', 'like', 'dislike', 'end_unite'),
    
    						'meta_class' => 'post_meta',
    
    						'meta_before' => '',
    
    						'meta_after'  => '',
    
    						'display_meta_data' => true
    
    					);
    
    		$args = wp_parse_args( $args, $defaults );
    
    		$post_meta_type = (of_get_option('post_meta') == 'true' || of_get_option('post_meta') == '') ? 'line' : of_get_option('post_meta');
    
    		if($meta_elements_empty){
    
    			foreach ($global_meta_elements as $key) {
    
    				if($key != 'end_unite || start_unite'){
    
    				unset($args['meta_elements'][array_search($key, $args['meta_elements'])]);
    
    				}
    
    			}
    
    		}
    
    		if($post_meta_type!='false' && $args['display_meta_data']){
    
    			$post_ID = get_the_ID();
    
    			$post_type = get_post_type($post_ID);
    
    			$icon_tips_before = ($post_meta_type == 'icon') ? '<div class="tips">' : '';
    
    			$icon_tips_after = ($post_meta_type == 'icon') ? '</div>' : '';
    
    			$user_login = is_user_logged_in() ? true : false;
    
    			$user_id = $user_login ? get_current_user_id() : "";
    
    			$voting_class = $user_login ? 'ajax_voting ' : 'not_voting ';
    
    			$voting_url = PARENT_URL.'/includes/voting.php?post_ID='.$post_ID.'&get_user_ID='.$user_id;
    
    			$get_voting_array = cherry_getPostVoting($post_ID, $user_id);
    
    			$user_voting = $get_voting_array['user_voting'];
    
    			echo $args['meta_before'].'<div class="'.$args['meta_class'].' meta_type_'.$post_meta_type.'">';
    
    				foreach ($args['meta_elements'] as $value) {
    
    					switch ($value) {
    
    						case 'date':
    
    							if(of_get_option('post_date') != 'no'){ ?>
    
    								<div class="post_date">
    
    									<i class="icon-calendar"></i>
    
    									<?php echo $icon_tips_before . '<time datetime="' . get_the_time('Y-m-d\TH:i:s') . '">' . get_the_date() . '</time>' . $icon_tips_after; ?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'author':
    
    							if(of_get_option('post_author') != 'no'){ ?>
    
    								<div class="post_author">
    
    									<i class="icon-user"></i>
    
    									<?php
    
    									echo $icon_tips_before;
    
    									the_author_posts_link();
    
    									echo $icon_tips_after;
    
    									?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'permalink':
    
    							if(of_get_option('post_permalink') != 'no' && !is_singular()){ ?>
    
    								<div class="post_permalink">
    
    									<i class="icon-link"></i>
    
    									<?php echo $icon_tips_before.'<a href="'.get_permalink().'" title="'.get_the_title().'">'.theme_locals('permalink_to').'</a>'.$icon_tips_after; ?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'categories':
    
    							if(of_get_option('post_category') != 'no'){ ?>
    
    								<div class="post_category">
    
    									<i class="icon-bookmark"></i>
    
    									<?php
    
    										echo $icon_tips_before;
    
    										if($post_type != 'post'){
    
    											$custom_category = !is_wp_error(get_the_term_list($post_ID, $post_type.'_category','',', ')) ? get_the_term_list($post_ID, $post_type.'_category','',', ') : theme_locals('has_not_category');
    
    											echo $custom_category;
    
    										}else{
    
    											the_category(', ');
    
    										}
    
    										echo $icon_tips_after;
    
    									?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'tags':
    
    							if(of_get_option('post_tag') != 'no'){ ?>
    
    								<div class="post_tag">
    
    									<i class="icon-tag"></i>
    
    									<?php
    
    										echo $icon_tips_before;
    
    										if(get_the_tags() || has_term('', $post_type.'_tag', $post_ID)){
    
    											echo ($post_type != 'post') ? the_terms($post_ID, $post_type.'_tag','',', ') : the_tags('', ', ');
    
    										} else {
    
    											echo theme_locals('has_not_tags');
    
    										}
    
    										echo $icon_tips_after;
    
    									 ?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'comment':
    
    							if(of_get_option('post_comment') != 'no'){ ?>
    
    								<div class="post_comment">
    
    									<i class="icon-comments"></i>
    
    									<?php
    
    										echo $icon_tips_before;
    
    										comments_popup_link(theme_locals('no_comments'), theme_locals('comment'), '% '.theme_locals('comments'), theme_locals('comments_link'), theme_locals('comments_closed'));
    
    										echo $icon_tips_after;
    
    									 ?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'views':
    
    							if(of_get_option('post_views') != 'no'){ ?>
    
    								<div class="post_views" title="<?php echo theme_locals('number_views'); ?>">
    
    									<i class="icon-eye-open"></i>
    
    									<?php echo $icon_tips_before.cherry_getPostViews($post_ID).$icon_tips_after; ?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'dislike':
    
    							if(of_get_option('post_dislike') != 'no'){
    
    								$dislike_url = ($user_login && $user_voting=='none') ? 'href="'.$voting_url.'&voting=dislike"' : '';
    
    								$dislike_count = $get_voting_array['dislike_count'];
    
    								$dislike_title = $user_login ? theme_locals('dislike') : theme_locals('not_voting');
    
    								$dislike_class = ($user_voting == 'dislike') ? 'user_dislike ' : '';
    
    								if($user_voting!='none'){
    
    									$voting_class = "user_voting ";
    
    								}
    
    							?>
    
    								<div class="post_dislike">
    
    									<a <?php echo $dislike_url; ?> class="<?php echo $voting_class.$dislike_class; ?>" title="<?php echo $dislike_title; ?>" date-type="dislike" >
    
    										<i class="icon-thumbs-down"></i>
    
    										<?php echo $icon_tips_before.'<span class="voting_count">'.$dislike_count.'</span>'.$icon_tips_after; ?>
    
    									</a>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'like':
    
    							if(of_get_option('post_like') != 'no'){
    
    								$like_url = ($user_login && $user_voting=='none') ? 'href="'.$voting_url.'&voting=like"' : '';
    
    								$like_count = $get_voting_array['like_count'];
    
    								$like_title = $user_login ? theme_locals('like') : theme_locals('not_voting');
    
    								$like_class = ($user_voting == 'like') ? 'user_like ' : '';
    
    								if($user_voting!='none'){
    
    									$voting_class = "user_voting ";
    
    								}
    
    							?>
    
    								<div class="post_like">
    
    									<a <?php echo $like_url; ?> class="<?php echo $voting_class.$like_class; ?>" title="<?php echo $like_title; ?>" date-type="like" >
    
    										<i class="icon-thumbs-up"></i>
    
    										<?php echo $icon_tips_before.'<span class="voting_count">'.$like_count.'</span>'.$icon_tips_after; ?>
    
    									</a>
    
    								</div>
    
    								<?php
    
    							}
    
    						break;
    
    						case 'start_unite':
    
    							echo '<div class="post_meta_unite clearfix">';
    
    						break;
    
    						case 'end_unite':
    
    							echo '</div>';
    
    						break;
    
    						case 'start_group':
    
    							echo '<div class="meta_group clearfix">';
    
    						break;
    
    						case 'end_group':
    
    							echo '</div>';
    
    						break;
    
    					}
    
    				}
    
    			echo '</div>'.$args['meta_after'];
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  Post Views
    
    //------------------------------------------------------
    
    	function cherry_getPostViews($postID){
    
    		return (get_post_meta($postID, 'post_views_count', true) == '') ? "0" : get_post_meta($postID, 'post_views_count', true);
    
    	}
    
    	function cherry_setPostViews($postID){
    
    		$count_key = 'post_views_count';
    
    		$count = get_post_meta($postID, $count_key, true);
    
    		if($count==''){
    
    			$count = 1;
    
    		}else{
    
    			$count++;
    
    		}
    
    		update_post_meta($postID, $count_key, $count);
    
    	}
    
    //------------------------------------------------------
    
    //  Post voting
    
    //------------------------------------------------------
    
    	function cherry_getPostVoting($postID, $user_id){
    
    		$like_count = (get_post_meta($postID, 'post_like', true) == false) ? "0" : get_post_meta($postID, 'post_like', true);
    
    		$dislike_count = (get_post_meta($postID, 'post_dislike', true) == false) ? "0" : get_post_meta($postID, 'post_dislike', true);
    
    		$user_like_array = get_post_meta($postID, 'user_like');
    
    		$user_dislike_array = get_post_meta($postID, 'user_dislike');
    
    		$user_voting = 'none';
    
    		if(in_array($user_id, $user_like_array)){
    
    			$user_voting = 'like';
    
    		}else if(in_array($user_id, $user_dislike_array)){
    
    			$user_voting = 'dislike';
    
    		}
    
    		return array('like_count' => $like_count, 'dislike_count' => $dislike_count, 'user_voting' => $user_voting);
    
    	}
    
    //------------------------------------------------------
    
    //  Get team social networks
    
    //------------------------------------------------------
    
    	function cherry_get_post_networks($args = array()){
    
    		global $post;
    
    		extract(
    
    			wp_parse_args(
    
    				$args,
    
    				array(
    
    					'post_id' => get_the_ID(),
    
    					'class' => 'post_networks',
    
    					'before_title' => '<h4>',
    
    					'after_title' => '</h4>',
    
    					'display_title' => true,
    
    					'output_type' => 'echo'
    
    				)
    
    			)
    
    		);
    
    		$networks_array = explode(" ", get_option('fields_id_value'.$post_id, ''));
    
    		if($networks_array[0]!=''){
    
    			$count = 0;
    
    			$network_title = get_post_meta($post_id, 'network_title', true);
    
    			$output = '<div class="'.$class.'">';
    
    			$output .= $network_title && $display_title ? $before_title.$network_title.$after_title : '';
    
    			$output .= '<ul class="clearfix unstyled">';
    
    			foreach ($networks_array as $networks_id) {
    
    				$network_array = explode(";", get_option('network_'.$post_id.'_'.$networks_id, array('','','')));
    
    				$output .= '<li class="network_'.$count.'">';
    
    				$output .= $network_array[2] ? '<a href="'.$network_array[2].'" title="'.$network_array[1].'">' : '' ;
    
    				$output .= $network_array[0] ? '<span class="'.$network_array[0].'"></span>' :'';
    
    				$output .= $network_array[1] ? '<span class="network_title">'.$network_array[1].'</span>' : '' ;
    
    				$output .= $network_array[2] ? '</a>' : '' ;
    
    				$output .= '</li>';
    
    				++$count;
    
    			}
    
    			$output .= '</ul></div>';
    
    			if($output_type == 'echo'){
    
    				echo $output;
    
    			}else{
    
    				return $output;
    
    			}
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  Related Posts
    
    //------------------------------------------------------
    
    	if(!function_exists('cherry_related_posts')){
    
    		function cherry_related_posts($args = array()){
    
    			global $post;
    
    			$default = array(
    
    				'post_type' => get_post_type($post),
    
    				'class' => 'related-posts',
    
    				'class_list' => 'related-posts_list',
    
    				'class_list_item' => 'related-posts_item',
    
    				'display_title' => true,
    
    				'display_link' => true,
    
    				'display_thumbnail' => true,
    
    				'width_thumbnail' => 250,
    
    				'height_thumbnail' => 150,
    
    				'before_title' => '<h3 class="related-posts_h">',
    
    				'after_title' => '</h3>',
    
    				'posts_count' => 4
    
    			);
    
    			extract(array_merge($default, $args));
    
    			$post_tags = wp_get_post_terms($post->ID, $post_type.'_tag', array("fields" => "slugs"));
    
    			$tags_type = $post_type=='post' ? 'tag' : $post_type.'_tag' ;
    
    			$suppress_filters = get_option('suppress_filters');// WPML filter
    
    			$blog_related = apply_filters( 'cherry_text_translate', of_get_option('blog_related'), 'blog_related' );
    
    			if ($post_tags && !is_wp_error($post_tags)) {
    
    				$args = array(
    
    					"$tags_type" => implode(',', $post_tags),
    
    					'post_status' => 'publish',
    
    					'posts_per_page' => $posts_count,
    
    					'ignore_sticky_posts' => 1,
    
    					'post__not_in' => array($post->ID),
    
    					'post_type' => $post_type,
    
    					'suppress_filters' => $suppress_filters
    
    					);
    
    				query_posts($args);
    
    				if ( have_posts() ) {
    
    					$output = '<div class="'.$class.'">';
    
    					$output .= $display_title ? $before_title.$blog_related.$after_title : '' ;
    
    					$output .= '<ul class="'.$class_list.' clearfix">';
    
    					while( have_posts() ) {
    
    						the_post();
    
    						$thumb   = has_post_thumbnail() ? get_post_thumbnail_id() : PARENT_URL.'/images/empty_thumb.gif';
    
    						$blank_img = stripos($thumb, 'empty_thumb.gif');
    
    						$img_url = $blank_img ? $thumb : wp_get_attachment_url( $thumb,'full');
    
    						$image   = $blank_img ? $thumb : aq_resize($img_url, $width_thumbnail, $height_thumbnail, true) or $img_url;
    
    						$output .= '<li class="'.$class_list_item.'">';
    
    						$output .= $display_thumbnail ? '<figure class="thumbnail featured-thumbnail"><a href="'.get_permalink().'" title="'.get_the_title().'"><img data-src="'.$image.'" alt="'.get_the_title().'" /></a></figure>': '' ;
    
    						$output .= $display_link ? '<a href="'.get_permalink().'" >'.get_the_title().'</a>': '' ;
    
    						$output .= '</li>';
    
    					}
    
    					$output .= '</ul></div>';
    
    					echo $output;
    
    				}
    
    				wp_reset_query();
    
    			}
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  Main Layout option
    
    //------------------------------------------------------
    
    	if (of_get_option('main_layout') == 'fixed') {
    
    		add_filter('body_class','cherry_layout_class');
    
    		function cherry_layout_class($classes) {
    
    			$classes[] = 'cherry-fixed-layout';
    
    			return $classes;
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  General option
    
    //------------------------------------------------------
    
    	if ( (of_get_option('header_background') != '')
    
    		|| (of_get_option('header_color') !='')
    
    		|| (of_get_option('body_background') !='')
    
    		|| (of_get_option('custom_css') !='') ) {
    
    		add_action('wp_head', 'cherry_general_opt');
    
    		function cherry_general_opt(){
    
    			$output = "\n<style type='text/css'>";
    
    			// body bg option
    
    			if (of_get_option('body_background') !='') {
    
    				$background = of_get_option('body_background');
    
    				if ($background != '') {
    
    					if ($background['image'] != '') {
    
    						$output .= "\nbody { background-image:url(".$background['image']. "); background-repeat:".$background['repeat']."; background-position:".$background['position']."; background-attachment:".$background['attachment']."; }";
    
    					}
    
    					if($background['color'] != '') {
    
    						$output .= "\nbody { background-color:".$background['color']." }";
    
    					}
    
    				}
    
    			}
    
    			// header bg option
    
    			if (of_get_option('header_color') !='') {
    
    				$header_styling = of_get_option('header_color');
    
    				update_option('child_header_color', $header_styling);
    
    				$output .= "\n.header { background-color:".$header_styling." }";
    
    			} else {
    
    				$header_styling = of_get_option('header_background');
    
    				if ($header_styling['image'] != '') {
    
    					$output .= "\n.header { background-image:url(".$header_styling['image']. "); background-repeat:".$header_styling['repeat']."; background-position:".$header_styling['position']."; background-attachment:".$header_styling['attachment']."; }";
    
    				}
    
    				if ($header_styling['color'] != '') {
    
    					$output .= "\n.header { background-color:".$header_styling['color']." }";
    
    				} else {
    
    					if (get_option('child_header_color') && !is_array(get_option('child_header_color')) ) {
    
    						$output .= "\n.header { background-color:".get_option('child_header_color')." }";
    
    					}
    
    				}
    
    			}
    
    			// custom CSS
    
    			$output .= "\n".htmlspecialchars_decode(of_get_option('custom_css'));
    
    			$output .= "\n</style>";
    
    			echo $output;
    
    		}
    
    	}
    
    	/**
    
    	*
    
    	* Register hook in update.php page
    
    	*
    
    	**/
    
    	add_action('load-update.php', 'cherry_register_update_page_hook');
    
    	function cherry_register_update_page_hook(){
    
    		if ( isset($_GET['action']) ) {
    
    			$plugin = isset($_REQUEST['plugin']) ? trim($_REQUEST['plugin']) : '';
    
    			$theme  = isset($_REQUEST['theme']) ? urldecode($_REQUEST['theme']) : '';
    
    			$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
    
    			if ( 'CherryFramework' == $theme ) {
    
    				if ( 'upgrade-theme' == $action ) {
    
    					add_action('upgrader_process_complete', 'after_cherry_theme_upgrade_call');
    
    				} elseif ( 'upload-theme' == $action ) {
    
    					add_action('upgrader_process_complete', 'after_cherry_theme_upgrade_call');
    
    				}
    
    			}
    
    			if ( 'cherry-plugin' == $plugin ) {
    
    				if ( 'upgrade-plugin' == $action ) {
    
    					add_action('upgrader_process_complete', 'after_cherry_plugin_upgrade_call');
    
    				}
    
    			}
    
    		}
    
    	}
    
    	/**
    
    	*
    
    	* Register hook in update-core.php page
    
    	*
    
    	**/
    
    	add_action('load-update-core.php', 'cherry_register_update_core_page_hook');
    
    	function cherry_register_update_core_page_hook(){
    
    		if ( isset( $_GET['themes'] ) )
    
    			$themes = explode( ',', stripslashes($_GET['themes']) );
    
    		elseif ( isset( $_POST['checked'] ) )
    
    			$themes = (array) $_POST['checked'];
    
    		if ( !isset($themes) )
    
    			return;
    
    		if ( array_search('CherryFramework', $themes) === FALSE )
    
    			return;
    
    		if ( isset($_GET['action']) ) {
    
    			$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
    
    			if ( 'do-theme-upgrade' == $action ) {
    
    				add_action('upgrader_process_complete', 'after_cherry_theme_upgrade_call');
    
    			}
    
    		}
    
    	}
    
    	/**
    
    	*
    
    	* Register hook after CherryFramework upgrade
    
    	*
    
    	**/
    
    	function after_cherry_theme_upgrade_call(){
    
    		do_action('after_cherry_theme_upgrade');
    
    	}
    
    	/**
    
    	*
    
    	* Register hook after Cherry Plugin upgrade
    
    	*
    
    	**/
    
    	function after_cherry_plugin_upgrade_call(){
    
    		do_action('after_cherry_plugin_upgrade');
    
    	}
    
    	/**
    
    	*
    
    	* Unpack Cherry Plugin package
    
    	*
    
    	**/
    
    	add_action('after_cherry_theme_upgrade', 'cherry_plugin_unpack_package');
    
    	function cherry_plugin_unpack_package(){
    
    		$plugin = 'cherry-plugin/cherry-plugin.php';
    
    		if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin ) ) {
    
    			return;
    
    		}
    
    		if ( !function_exists( 'is_plugin_active' ) ) {
    
    			require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
    
    		}
    
    		if ( is_plugin_active( $plugin ) )
    
    			return;
    
    		$file   = PARENT_DIR . '/includes/plugins/cherry-plugin.zip';
    
    		$to     = WP_PLUGIN_DIR . '/cherry-plugin/';
    
    		$result = false;
    
    		if ( !file_exists($file) )
    
    			return $result;
    
    		if ( !function_exists('WP_Filesystem') ) {
    
    			require_once(ABSPATH . 'wp-admin/includes/file.php');
    
    		}
    
    		WP_Filesystem();
    
    		global $wp_filesystem;
    
    		// Clean up plugin directory
    
    		if ( $wp_filesystem->is_dir($to) )
    
    			$wp_filesystem->delete($to, true);
    
    		$result = unzip_file( $file, $to );
    
    		if ( is_wp_error($result) ) {
    
    			if ( 'incompatible_archive' == $result->get_error_code() ) {
    
    				return new WP_Error( 'incompatible_archive', __('The package could not be installed.', CURRENT_THEME), $result->get_error_data() );
    
    			}
    
    		}
    
    		return $result;
    
    	}
    
    	/**
    
    	*
    
    	* Set Up Cherry Plugin
    
    	*
    
    	**/
    
    	add_action('after_setup_theme', 'cherry_plugin_setup');
    
    	function cherry_plugin_setup(){
    
    		$plugin = 'cherry-plugin/cherry-plugin.php';
    
    		if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin ) ) {
    
    			return;
    
    		}
    
    		if ( !function_exists( 'is_plugin_active' ) ) {
    
    			require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
    
    		}
    
    		if ( is_plugin_active( $plugin ) )
    
    			return;
    
    		$file   = PARENT_DIR . '/includes/plugins/cherry-plugin.zip';
    
    		$to     = WP_PLUGIN_DIR . '/cherry-plugin/';
    
    		$result = false;
    
    		if ( !file_exists($file) )
    
    			return $result;
    
    		if ( !function_exists('WP_Filesystem') ) {
    
    			require_once(ABSPATH . 'wp-admin/includes/file.php');
    
    		}
    
    		WP_Filesystem();
    
    		global $wp_filesystem;
    
    		$result = unzip_file( $file, $to );
    
    		if ( is_wp_error($result) ) {
    
    			if ( 'incompatible_archive' == $result->get_error_code() ) {
    
    				return new WP_Error( 'incompatible_archive', __('The package could not be installed.', CURRENT_THEME), $result->get_error_data() );
    
    			

    Thread Starter rblanda3

    (@rblanda3)

    This did not work. Whenever I update the functions.php the site breaks with a parse error. There are several functions.php in the site also. This site uses CHERRY FRAMEWORK. SHould i be updating the one in the Cherry Framework folder or the one in wp-includes directory? This is very frustrating.

    Here is the one from the Cherry Framework:

    <?php
    
    	/*
    
    	 * Set Proper Parent/Child theme paths for inclusion
    
    	 */
    
    	@define( 'PARENT_DIR', get_template_directory() );
    
    	@define( 'CHILD_DIR', get_stylesheet_directory() );
    
    	@define( 'PARENT_URL', get_template_directory_uri() );
    
    	@define( 'CHILD_URL', get_stylesheet_directory_uri() );
    
    	@define( 'CURRENT_THEME', getCurrentTheme() );
    
    	@define( 'CHERRY_VER', cherry_get_theme_version('CherryFramework') );
    
    	@define( 'FILE_WRITEABLE', is_writeable(PARENT_DIR.'/style.css'));
    
    	/**
    
    	*
    
    	* Variables array init
    
    	*
    
    	**/
    
    	$variablesArray = array(
    
    		'textColor'      => '#000000',
    
    		'bodyBackground' => '#000000',
    
    		'baseFontFamily' => '#000000',
    
    		'baseFontSize'   => '#000000',
    
    		'baseLineHeight' => '#000000',
    
    		'linkColor'      => '#000000',
    
    		'linkColorHover' => '#000000',
    
    		'mainBackground' => '#ffffff'
    
    		);
    
    	/**
    
    	*
    
    	* JS global variables
    
    	*
    
    	**/
    
    	function cherry_js_global_variables(){
    
    		$output = "<script>";
    
    		$output .="\n var system_folder = '".PARENT_URL."/admin/data_management/',";
    
    		$output .= "\n\t CHILD_URL ='" .CHILD_URL."',";
    
    		$output .= "\n\t PARENT_URL = '".PARENT_URL."', ";
    
    		$output .= "\n\t CURRENT_THEME = '".CURRENT_THEME."'";
    
    		$output .= "</script>";
    
    		echo $output;
    
    	}
    
    	add_action('wp_head', 'cherry_js_global_variables');
    
    	add_action('admin_head', 'cherry_js_global_variables');
    
    	/**
    
    	*
    
    	* Definition current theme
    
    	*
    
    	**/
    
    	function getCurrentTheme() {
    
    		if ( function_exists('wp_get_theme') ) {
    
    			$theme = wp_get_theme();
    
    			if ( $theme->exists() ) {
    
    				$theme_name = $theme->Name;
    
    			}
    
    		} else {
    
    			$theme_name = get_current_theme();
    
    		}
    
    		$theme_name = preg_replace("/\W/", "_", strtolower($theme_name) );
    
    		return $theme_name;
    
    	}
    
    	/**
    
    	*
    
    	* Definition theme version
    
    	* @param string $theme_name Directory name for the theme
    
    	*
    
    	**/
    
    	function cherry_get_theme_version($theme_name) {
    
    		if ( function_exists('wp_get_theme') ) {
    
    			$theme = wp_get_theme($theme_name);
    
    			if ( $theme->exists() ) {
    
    				$theme_ver = $theme->Version;
    
    			}
    
    		} else {
    
    			$theme_data = get_theme_data( get_theme_root() . '/' . $theme_name . '/style.css' );
    
    			$theme_ver  = $theme_data['Version'];
    
    		}
    
    		return $theme_ver;
    
    	}
    
    	/**
    
    	*
    
    	* Comment some value from variables.less
    
    	*
    
    	**/
    
    	if ( CURRENT_THEME != 'cherry' )
    
    		add_action('cherry_activation_hook', 'comment_child_var');
    
    	function comment_child_var() {
    
    		global $variablesArray;
    
    		$file = CHILD_DIR .'/bootstrap/less/variables.less';
    
    		if ( file_exists($file) ) {
    
    			$allVariablessArray = file($file);
    
    			foreach ($variablesArray as $key => $value) {
    
    				foreach ($allVariablessArray as $k => $v) {
    
    					$pos = strpos($v, $key);
    
    					if ( $pos!==false && $pos == 1 ) {
    
    						$allVariablessArray[$k] = '// ' . $v;
    
    						break;
    
    					}
    
    				}
    
    			}
    
    			file_put_contents($file, $allVariablessArray);
    
    		}
    
    	}
    
    	/**
    
    	 * Helper function to return the theme option value.
    
    	 * If no value has been saved, it returns $default.
    
    	 * Needed because options are saved as serialized strings.
    
    	 **/
    
    	if ( !function_exists( 'of_get_option' ) ) {
    
    		function of_get_option($name, $default = false) {
    
    			$optionsframework_settings = get_option('optionsframework');
    
    			// Gets the unique option id
    
    			$option_name = $optionsframework_settings['id'];
    
    			if ( get_option($option_name) ) {
    
    				$options = get_option($option_name);
    
    			}
    
    			if ( isset($options[$name]) ) {
    
    				return $options[$name];
    
    			} else {
    
    				return $default;
    
    			}
    
    		}
    
    	}
    
    	/**
    
    	*
    
    	* Unlink less cache files
    
    	*
    
    	**/
    
    	add_action('cherry_activation_hook', 'clean_less_cache');
    
    	function clean_less_cache() {
    
    		if ( CURRENT_THEME == 'cherry' ) {
    
    			$bootstrapInput	= PARENT_DIR .'/less/bootstrap.less';
    
    			$themeInput		= PARENT_DIR .'/less/style.less';
    
    		} else {
    
    			$bootstrapInput	= CHILD_DIR .'/bootstrap/less/bootstrap.less';
    
    			$themeInput		= CHILD_DIR .'/style.less';
    
    		}
    
    		$cacheFile1 = $bootstrapInput.".cache";
    
    		$cacheFile2 = $themeInput.".cache";
    
    		if (file_exists($cacheFile1)) unlink($cacheFile1);
    
    		if (file_exists($cacheFile2)) unlink($cacheFile2);
    
    	}
    
    	if ( (is_admin() && ($pagenow == "themes.php")) && FILE_WRITEABLE ) {
    
    		do_action('cherry_activation_hook');
    
    	}
    
    	if ( !function_exists('cherry_theme_setup')) {
    
    		function cherry_theme_setup() {
    
    			//Loading theme textdomain
    
    			load_theme_textdomain( CURRENT_THEME, PARENT_DIR . '/languages' );
    
    			//Localization functions
    
    			include_once (PARENT_DIR . '/includes/locals.php');
    
    			//Plugin Activation
    
    			include_once (CHILD_DIR . '/includes/register-plugins.php');
    
    			//Setup MotoPress
    
    			include_once (PARENT_DIR . '/includes/register-motopress.php');
    
    			//Include shop
    
    			if ( file_exists(get_stylesheet_directory().'/shop.php') ) {
    
    				include_once (CHILD_DIR . '/shop.php');
    
    			}
    
    		}
    
    		add_action('after_setup_theme', 'cherry_theme_setup');
    
    	}
    
    	//WPML compatibility
    
    	//WPML filter for correct posts IDs for the current language Solution
    
    	if ( function_exists( 'wpml_get_language_information' )) {
    
    		update_option('suppress_filters', 0);
    
    	} else {
    
    		update_option('suppress_filters', 1);
    
    	}
    
    	//Register text for translation
    
    	function cherry_wpml_translate_filter( $value, $name ) {
    
    		return icl_translate( 'cherry', $name, $value );
    
    	}
    
    	//Check if WPML is activated
    
    	if ( defined( 'ICL_SITEPRESS_VERSION' ) ) {
    
    		add_filter( 'cherry_text_translate', 'cherry_wpml_translate_filter', 10, 2 );
    
    	}
    
    	//Loading Custom function
    
    	include_once (CHILD_DIR . '/includes/custom-function.php');
    
    	//Loading jQuery and Scripts
    
    	include_once (PARENT_DIR . '/includes/theme-scripts.php');
    
    	//Sidebar
    
    	include_once (CHILD_DIR . '/includes/sidebar-init.php');
    
    	//Theme initialization
    
    	include_once (CHILD_DIR . '/includes/theme-init.php');
    
    	//Additional function
    
    	include_once (PARENT_DIR . '/includes/theme-function.php');
    
    	//Aqua Resizer for image cropping and resizing on the fly
    
    	include_once (PARENT_DIR . '/includes/aq_resizer.php');
    
    	//Add the pagemeta
    
    	include_once (PARENT_DIR . '/includes/theme-pagemeta.php');
    
    	//Add the postmeta
    
    	include_once (PARENT_DIR . '/includes/theme-postmeta.php');
    
    	//Add the postmeta to Portfolio posts
    
    	include_once (PARENT_DIR . '/includes/theme-portfoliometa.php');
    
    	//Add the postmeta to Slider posts
    
    	include_once (PARENT_DIR . '/includes/theme-slidermeta.php');
    
    	//Add the postmeta to Testimonials
    
    	include_once (PARENT_DIR . '/includes/theme-testimeta.php');
    
    	//Add the postmeta to Our Team posts
    
    	include_once (PARENT_DIR . '/includes/theme-teammeta.php');
    
    	//Loading options.php for theme customizer
    
    	include_once (CHILD_DIR . '/options.php');
    
    	include_once (PARENT_DIR . '/framework_options.php');
    
    	//Framework Data Management
    
    	include_once (PARENT_DIR . '/admin/data_management/data_management_interface.php');
    
    	//SEO Settings
    
    	include_once (PARENT_DIR . '/admin/seo/seo_settings_page.php');
    
    	//WP Pointers
    
    	include_once (PARENT_DIR . '/includes/class.wp-help-pointers.php');
    
    	//Embedding LESS compile
    
    	if ( !class_exists('lessc') ) {
    
    		include_once (PARENT_DIR .'/includes/lessc.inc.php');
    
    	}
    
    	include_once (PARENT_DIR .'/includes/less-compile.php');
    
    	// removes detailed login error information for security
    
    	add_filter('login_errors',create_function('$a', "return null;"));
    
    	/*
    
    	 * Loads the Options Panel
    
    	 *
    
    	 * If you're loading from a child theme use stylesheet_directory
    
    	 * instead of template_directory
    
    	 */
    
    	if ( !function_exists( 'optionsframework_init' ) ) {
    
    		define( 'OPTIONS_FRAMEWORK_DIRECTORY', PARENT_URL . '/admin/' );
    
    		include_once dirname( __FILE__ ) . '/admin/options-framework.php';
    
    	}
    
    	/*
    
    	 * Removes Trackbacks from the comment count
    
    	 *
    
    	 */
    
    	if ( !function_exists('comment_count') ) {
    
    		add_filter('get_comments_number', 'comment_count', 0);
    
    		function comment_count( $count ) {
    
    			if ( ! is_admin() ) {
    
    				global $id;
    
    				$args = 'status=approve&post_id=' . $id;
    
    				$comments = get_comments( $args, ARRAY_A );
    
    				$comments_by_type = separate_comments( $comments );
    
    				return count($comments_by_type['comment']);
    
    			} else {
    
    				return $count;
    
    			}
    
    		}
    
    	}
    
    	/*
    
    	 * Post Formats
    
    	 *
    
    	 */
    
    	$formats = array(
    
    				'aside',
    
    				'gallery',
    
    				'link',
    
    				'image',
    
    				'quote',
    
    				'audio',
    
    				'video');
    
    	add_theme_support( 'post-formats', $formats );
    
    	add_post_type_support( 'post', 'post-formats' );
    
    	/*
    
    	 * Custom excpert length
    
    	 *
    
    	 */
    
    	if(!function_exists('new_excerpt_length')) {
    
    		function new_excerpt_length($length) {
    
    			return 60;
    
    		}
    
    		add_filter('excerpt_length', 'new_excerpt_length');
    
    	}
    
    	add_filter( 'the_excerpt', 'do_shortcode' );
    
    	// enable shortcodes in sidebar
    
    	add_filter('widget_text', 'do_shortcode');
    
    	// custom excerpt ellipses for 2.9+
    
    	if(!function_exists('custom_excerpt_more')) {
    
    		function custom_excerpt_more($more) {
    
    			return theme_locals("read_more").' &raquo;';
    
    		}
    
    		add_filter('excerpt_more', 'custom_excerpt_more');
    
    	}
    
    	// no more jumping for read more link
    
    	if(!function_exists('no_more_jumping')) {
    
    		function no_more_jumping($post) {
    
    			return '&nbsp;<a href="'.get_permalink().'" class="read-more">'.theme_locals("continue_reading").'</a>';
    
    		}
    
    		add_filter('excerpt_more', 'no_more_jumping');
    
    	}
    
    	// category id in body and post class
    
    	if(!function_exists('category_id_class')) {
    
    		function category_id_class($classes) {
    
    			global $post;
    
    			foreach((get_the_category()) as $category)
    
    				$classes [] = 'cat-' . $category->cat_ID . '-id';
    
    				return $classes;
    
    		}
    
    		add_filter('post_class', 'category_id_class');
    
    		add_filter('body_class', 'category_id_class');
    
    	}
    
    	// Threaded Comments
    
    	if(!function_exists('enable_threaded_comments')) {
    
    		function enable_threaded_comments() {
    
    			if (!is_admin()) {
    
    				if (is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) {
    
    					wp_enqueue_script('comment-reply');
    
    				}
    
    			}
    
    		}
    
    		add_action('get_header', 'enable_threaded_comments');
    
    	}
    
    	//remove auto loading rel=next post link in header
    
    	remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');
    
    	// WP Pointers
    
    	if (!function_exists('myHelpPointers')) {
    
    		add_action('admin_enqueue_scripts', 'myHelpPointers');
    
    		function myHelpPointers() {
    
    			//First we define our pointers
    
    			$pointers = array(
    
    				array(
    
    					'id'       => 'xyz1', // unique id for this pointer
    
    					'screen'   => 'themes', // this is the page hook we want our pointer to show on
    
    					'target'   => '#toplevel_page_options-framework', // the css selector for the pointer to be tied to, best to use ID's
    
    					'title'    => theme_locals("import_sample_data"),
    
    					'content'  => theme_locals("import_sample_data_desc"),
    
    					'position' => array(
    
    										'edge'   => 'left', //top, bottom, left, right
    
    										'align'  => 'left', //top, bottom, left, right, middle
    
    										)
    
    					),
    
    				array(
    
    					'id'       => 'xyz2', // unique id for this pointer
    
    					'screen'   => 'toplevel_page_options-framework', // this is the page hook we want our pointer to show on
    
    					'target'   => '#toplevel_page_cherry-plugin-page', // the css selector for the pointer to be tied to, best to use ID's
    
    					'title'    => theme_locals("import_sample_data"),
    
    					'content'  => theme_locals("import_sample_data_desc"),
    
    					'position' => array(
    
    										'edge'   => 'left', //top, bottom, left, right
    
    										'align'  => 'left', //top, bottom, left, right, middle
    
    										)
    
    					)
    
    				// more as needed
    
    			);
    
    			//Now we instantiate the class and pass our pointer array to the constructor
    
    			$myPointers = new WP_Help_Pointer($pointers);
    
    		};
    
    	}
    
    	/*
    
    	 * Navigation with description
    
    	 *
    
    	 */
    
    	if (! class_exists('description_walker')) {
    
    		class description_walker extends Walker_Nav_Menu {
    
    			function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
    
    				global $wp_query;
    
    				$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
    
    				$class_names = $value = '';
    
    				$classes = empty( $item->classes ) ? array() : (array) $item->classes;
    
    				$class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item ) );
    
    				$class_names = ' class="'. esc_attr( $class_names ) . '"';
    
    				$output .= $indent . '<li id="menu-item-'. $item->ID . '"' . $value . $class_names .'>';
    
    				$attributes  = ! empty( $item->attr_title ) ? ' title="'  . esc_attr( $item->attr_title ) .'"' : '';
    
    				$attributes .= ! empty( $item->target )     ? ' target="' . esc_attr( $item->target     ) .'"' : '';
    
    				$attributes .= ! empty( $item->xfn )        ? ' rel="'    . esc_attr( $item->xfn        ) .'"' : '';
    
    				$attributes .= ! empty( $item->url )        ? ' href="'   . esc_attr( $item->url        ) .'"' : '';
    
    				$description  = ! empty( $item->description ) ? '<span class="desc">'.esc_attr( $item->description ).'</span>' : '';
    
    				if($depth != 0) {
    
    					$description = $append = $prepend = "";
    
    				}
    
    				$item_output = $args->before;
    
    				$item_output .= '<a'. $attributes .'>';
    
    				$item_output .= $args->link_before;
    
    				if (isset($prepend))
    
    					$item_output .= $prepend;
    
    				$item_output .= apply_filters( 'the_title', $item->title, $item->ID );
    
    				if (isset($append))
    
    					$item_output .= $append;
    
    				$item_output .= $description.$args->link_after;
    
    				$item_output .= '</a>';
    
    				$item_output .= $args->after;
    
    				$output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args );
    
    			}
    
    		}
    
    	}
    
    	/*
    
    	 * Cherry update
    
    	 */
    
    	$cherryTemplates = array(
    
    		'404.php',
    
    		'archive.php',
    
    		'author.php',
    
    		'category.php',
    
    		'index.php',
    
    		'page.php',
    
    		'page-archives.php',
    
    		'page-faq.php',
    
    		'page-fullwidth.php',
    
    		'page-home.php',
    
    		'page-Portfolio2Cols-filterable.php',
    
    		'page-Portfolio3Cols-filterable.php',
    
    		'page-Portfolio4Cols-filterable.php',
    
    		'page-testi.php',
    
    		'search.php',
    
    		'single.php',
    
    		'single-portfolio.php',
    
    		'single-team.php',
    
    		'single-testi.php',
    
    		'tag.php'
    
    	);
    
    	$headerFooterPattern = '/(\<header.*?\>.*?\<\/header\>|\<footer.*?\>.*?\<\/footer\>)/is';
    
    	if (is_user_logged_in() && current_user_can('update_themes')) {
    
    		$updateErrors = array();
    
    		$oldCherryVersion = get_option('cherry_version', '1.0');
    
    		$currentCherryVersion = getCherryVersion($updateErrors);
    
    		$cherryV2 = '2.0';
    
    		$cherryForceUpdate = (bool) get_option('cherry_force_update', false);
    
    		if (version_compare($oldCherryVersion, $cherryV2) == -1 || $cherryForceUpdate) {
    
    			writeLog(PHP_EOL . date('Y-m-d H:i:s'));
    
    			writeLog('Old CherryFramework version: ' . $oldCherryVersion);
    
    			writeLog('Current CherryFramework version: ' . $currentCherryVersion);
    
    			writeLog('Force update: ' . (int) $cherryForceUpdate);
    
    			cherryUpdate($cherryTemplates, $headerFooterPattern, $updateErrors);
    
    			//changeChildTheme
    
    			changeChildTheme($updateErrors);
    
    			//end changeChildTheme
    
    			if (empty($updateErrors)) {
    
    				update_option('cherry_version', $currentCherryVersion);
    
    				update_option('cherry_force_update', 0);
    
    			}
    
    		}
    
    	}
    
    	function getCherryVersion(&$updateErrors) {
    
    		$style = PARENT_DIR . '/style.css';
    
    		$themeVersion = 0;
    
    		if (function_exists('wp_get_theme')) {
    
    			$theme = wp_get_theme(get_option('template', 'CherryFramework'));
    
    			if (file_exists($style) && $theme->exists()) {
    
    				$themeVersion = $theme->Version;
    
    			} else {
    
    				$updateErrors[] = $style . ' does not exist';
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		} elseif (function_exists('get_theme_data')) {
    
    			if (file_exists($style)) {
    
    				$theme = get_theme_data($style);
    
    				$themeVersion = $theme['Version'];
    
    			} else {
    
    				$updateErrors[] = $style . ' does not exist';
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		} else {
    
    			if (file_exists($style)) {
    
    				$content = file_get_contents($style);
    
    				if ($content) {
    
    					$pattern = '/\s*version\s*:\s*([^\n]+)\s*/is';
    
    					preg_match($pattern, $content, $matches);
    
    					if (!empty($matches[1])) {
    
    						$themeVersion = trim($matches[1]);
    
    					}
    
    				} else {
    
    					$updateErrors[] = 'Failed to read ' . $style;
    
    					writeLog('Failed to read ' . $style);
    
    				}
    
    			} else {
    
    				$updateErrors[] = $style . ' does not exist';
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		}
    
    		return $themeVersion;
    
    	}
    
    	function isCherryChildTheme($themePath, $name, &$updateErrors) {
    
    		$style = $themePath . '/style.css';
    
    		$themeTemplate = false;
    
    		if (function_exists('wp_get_theme')) {
    
    			$theme = wp_get_theme($name);
    
    			if ($theme->exists()) {
    
    				if ($theme->Stylesheet != $theme->Template) {
    
    					$themeTemplate = $theme->Template;
    
    				}
    
    			} else {
    
    				$updateErrors[] = 'Theme ' . $theme->Name . ' does not exist';
    
    				writeLog('Theme ' . $theme->Name . ' does not exist');
    
    			}
    
    		} elseif (function_exists('get_theme_data')) {
    
    			$theme = get_theme_data($style);
    
    			$themeTemplate = $theme['Template'];
    
    		} else {
    
    			$content = file_get_contents($style);
    
    			if ($content) {
    
    				$pattern = '/\s*template\s*:\s*([^\n]+)\s*/is';
    
    				preg_match($pattern, $content, $matches);
    
    				if (!empty($matches[1])) {
    
    					$themeTemplate = trim($matches[1]);
    
    				}
    
    			} else {
    
    				$updateErrors[] = 'Failed to read ' . $style;
    
    				writeLog('Failed to read ' . $style);
    
    			}
    
    		}
    
    		return ($themeTemplate == 'CherryFramework') ? true : false;
    
    	}
    
    	function getHeaderFooterCode($headerFooterPattern) {
    
    		$headerFooter = array('header', 'footer');
    
    		$headerFooterCode = array('header' => null, 'footer' => null);
    
    		foreach ($headerFooter as $name) {
    
    			$filePath = PARENT_DIR . '/' . $name . '.php';
    
    			if (file_exists($filePath)) {
    
    				$content = file_get_contents($filePath);
    
    				if ($content) {
    
    					$matchesCount = preg_match($headerFooterPattern, $content, $matches);
    
    					if ($matchesCount == 1 && !empty($matches[0])) {
    
    						$headerFooterCode[$name] = $matches[0];
    
    					} else {
    
    						$updateErrors[] = 'header|footer code not found in ' . $filePath;
    
    						writeLog('header|footer code not found in ' . $filePath);
    
    					}
    
    				} else {
    
    					$updateErrors[] = 'Failed to read ' . $filePath;
    
    					writeLog('Failed to read ' . $filePath);
    
    				}
    
    			} else {
    
    				$updateErrors[] = $filePath . ' does not exist';
    
    				writeLog($filePath . ' does not exist');
    
    			}
    
    		}
    
    		return $headerFooterCode;
    
    	}
    
    	function backupFile($templatePath) {
    
    		return copy($templatePath, $templatePath . '.bak');
    
    	}
    
    	function writeLog($message) {
    
    		$logFile = PARENT_DIR . '/update.log';
    
    		if (is_writable(PARENT_DIR)) {
    
    			file_put_contents($logFile, $message . PHP_EOL, FILE_APPEND);
    
    		}
    
    	}
    
    	function cherryUpdate($cherryTemplates, $headerFooterPattern, &$updateErrors) {
    
    		$themesPath = get_theme_root();
    
    		$skip = array('.', '..', 'CherryFramework', 'twentytwelve', 'twentyeleven', 'twentyten', 'index.php');
    
    		$themes = array_diff(scandir($themesPath), $skip);
    
    		if (!empty($themes)) {
    
    			foreach ($themes as $theme) {
    
    				$themePath = $themesPath . '/' . $theme;
    
    				if (is_dir($themePath) && file_exists($themePath . '/style.css')) {
    
    					$isCherryChildTheme = isCherryChildTheme($themePath, $theme, $updateErrors);
    
    					if ($isCherryChildTheme) {
    
    						if (is_writable($themePath)) {
    
    							writeLog(PHP_EOL . 'Child theme: ' . $themePath);
    
    							$files = scandir($themePath);
    
    							$themeTemplates = array_intersect($files, $cherryTemplates);
    
    							if (!empty($themeTemplates)) {
    
    								foreach ($themeTemplates as $template) {
    
    									$templatePath = $themePath . '/' . $template;
    
    									if (is_writable($templatePath)) {
    
    										$content = file_get_contents($templatePath);
    
    										if ($content) {
    
    											$headerFooterMatchesCount = preg_match_all($headerFooterPattern, $content, $headerFooterMatches);
    
    											if ($headerFooterMatchesCount > 0) {
    
    												$backupFile = backupFile($templatePath);
    
    												if ($backupFile) {
    
    													writeLog('Backup ' . $templatePath);
    
    													$content = preg_replace($headerFooterPattern, '', $content, -1, $headerFooterReplaceCount);
    
    													if (!is_null($content) && $headerFooterReplaceCount > 0) {
    
    														writeLog('Replace ' . $headerFooterReplaceCount . ' header|footer');
    
    														if (file_put_contents($templatePath, $content)) {
    
    															writeLog('Save ' . $templatePath);
    
    														} else {
    
    															$updateErrors[] = 'Failed to save ' . $templatePath;
    
    															writeLog('Failed to save ' . $templatePath);
    
    														}
    
    													}
    
    												} else {
    
    													$updateErrors[] = 'Failed to backup ' . $templatePath;
    
    													writeLog('Failed to backup ' . $templatePath);
    
    												}
    
    											}
    
    										} else {
    
    											$updateErrors[] = 'Failed to read ' . $templatePath;
    
    											writeLog('Failed to read ' . $templatePath);
    
    										}
    
    									} else {
    
    										$updateErrors[] = $templatePath . ' is not writable';
    
    										writeLog($templatePath . ' is not writable');
    
    									}
    
    								}
    
    							}
    
    							$headerFooter = array_intersect($files, array('header.php', 'footer.php'));
    
    							if (!empty($headerFooter)) {
    
    								$headerFooterCode = getHeaderFooterCode($headerFooterPattern);
    
    								if (!is_null($headerFooterCode['header']) && !is_null($headerFooterCode['footer'])) {
    
    									foreach ($headerFooter as $file) {
    
    										$filePath = $themePath . '/' . $file;
    
    										if (is_writable($filePath)) {
    
    											$content = file_get_contents($filePath);
    
    											if ($content) {
    
    												$headerFooterMatchesCount = preg_match_all($headerFooterPattern, $content, $headerFooterMatches);
    
    												if ($headerFooterMatchesCount === 0) {
    
    													$backupFile = backupFile($filePath);
    
    													if ($backupFile) {
    
    														writeLog('Backup ' . $filePath);
    
    														if ($file == 'header.php') {
    
    															$content .= $headerFooterCode['header'];
    
    														} elseif ($file == 'footer.php') {
    
    															$content = $headerFooterCode['footer'] . $content;
    
    														}
    
    														writeLog('Add header|footer code in ' . $filePath);
    
    														if (file_put_contents($filePath, $content)) {
    
    															writeLog('Save ' . $filePath);
    
    														} else {
    
    															$updateErrors[] = 'Failed to save ' . $filePath;
    
    															writeLog('Failed to save ' . $filePath);
    
    														}
    
    													} else {
    
    														$updateErrors[] = 'Failed to backup ' . $filePath;
    
    														writeLog('Failed to backup ' . $filePath);
    
    													}
    
    												}
    
    											} else {
    
    												$updateErrors[] = 'Failed to read ' . $filePath;
    
    												writeLog('Failed to read ' . $filePath);
    
    											}
    
    										} else {
    
    											$updateErrors[] = $filePath . ' is not writable';
    
    											writeLog($filePath . ' is not writable');
    
    										}
    
    									}
    
    								}
    
    							}
    
    						} else {
    
    							$updateErrors[] = $themePath . ' is not writable';
    
    							writeLog($themePath . ' is not writable');
    
    						}
    
    					}
    
    				}
    
    			}
    
    		}
    
    	}
    
    //changeChildTheme
    
    	function changeChildTheme(&$updateErrors){
    
    		$themesPath = get_theme_root();
    
    		$skip = array('.', '..', 'CherryFramework', 'twentytwelve', 'twentyeleven', 'twentyten', 'index.php');
    
    		$themes = array_diff(scandir($themesPath), $skip);
    
    		if (!empty($themes)) {
    
    			foreach ($themes as $theme) {
    
    				$themePath = $themesPath . '/' . $theme;
    
    				if (is_dir($themePath) && file_exists($themePath . '/style.css')) {
    
    					$isCherryChildTheme = isCherryChildTheme($themePath, $theme, $updateErrors);
    
    					if ($isCherryChildTheme) {
    
    						if (is_writable($themePath)) {
    
    							unset($slider_in_header, $slider_in_page_home, $pahe_home_content);
    
    							writeLog(PHP_EOL . 'Child theme: ' . $themePath);
    
    							$files = scandir($themePath);
    
    							$header_php = array_intersect($files, array('header.php'));
    
    							if (!empty($header_php)) {
    
    								$templatePath = $themePath . '/header.php';
    
    								$content = file_get_contents($templatePath);
    
    								if (stripos($content, '"static/static-slider"')!==false) {
    
    									$slider_in_header = true;
    
    								}
    
    							}
    
    							if(!isset($slider_in_header)){
    
    								if (is_dir($themePath."/wrapper")){
    
    									$nestedFiles = scandir($themePath."/wrapper");
    
    									$header_wrapper_php = array_intersect($nestedFiles, array('wrapper-header.php'));
    
    									if (!empty($header_wrapper_php)) {
    
    										$header_wrapper_php_path = $themePath . '/wrapper/wrapper-header.php';
    
    										$content = file_get_contents($header_wrapper_php_path);
    
    										if (stripos($content, '"static/static-slider"')!==false) {
    
    											$slider_in_header = true;
    
    										}
    
    									}
    
    								}
    
    							}
    
    							if(!isset($slider_in_header)){
    
    								$page_home_php = array_intersect($files, array('page-home.php'));
    
    								if (!empty($page_home_php)) {
    
    									$templatePath = $themePath . '/page-home.php';
    
    									$content = file($templatePath);
    
    									for ($i=0, $arrayCount = count($content); $i < $arrayCount ; $i++) {
    
    										if(stripos($content[$i], '"static/static-slider"')!==false){
    
    											$slider_in_page_home = $i;
    
    										}
    
    										if(stripos($content[$i], '"page-home.php"')!==false){
    
    											$pahe_home_content = $i;
    
    										}
    
    									}
    
    									if(!isset($slider_in_page_home)){
    
    										array_splice($content, $pahe_home_content+1, 0, "\t<div class=\"row\">\n\t\t<div class=\"span12\" data-motopress-type=\"static\" data-motopress-static-file=\"static/static-slider.php\">\n\t\t\t<?php get_template_part(\"static/static-slider\"); ?>\n\t\t</div>\n\t</div>\n");
    
    										writeLog('Change page-home.php');
    
    										if (file_put_contents($templatePath, $content)) {
    
    											writeLog('Save ' . $templatePath);
    
    										} else {
    
    											$updateErrors[] = 'Failed to save ' . $templatePath;
    
    											writeLog('Failed to save ' . $templatePath);
    
    										}
    
    									}
    
    								}
    
    							}
    
    							$stylesheet = array_intersect($files, array('style.css'));
    
    							$stylePath = $themePath . '/style.css';
    
    							if (!empty($stylesheet)) {
    
    								$styleContent = file($stylePath);
    
    								if ($styleContent) {
    
    									for ($i=0, $arrayCount = count($styleContent); $i < $arrayCount ; $i++) {
    
    										if(stripos($styleContent[$i], "/*--")!==false){
    
    											$styleContentChange = array();
    
    										}
    
    										if(isset($styleContentChange)){
    
    											$styleContentChange[$i] = $styleContent[$i];
    
    										}
    
    										if(stripos($styleContent[$i], "--*/")!==false){
    
    											break;
    
    										}
    
    									}
    
    									array_push($styleContentChange, "\n/* ----------------------------------------\n\tPlease, You may put custom CSS here\n---------------------------------------- */\n");
    
    									if (file_put_contents($stylePath, $styleContentChange)) {
    
    										writeLog('Save ' . $stylePath);
    
    									} else {
    
    										$updateErrors[] = 'Failed to save ' . $stylePath;
    
    										writeLog('Failed to save ' . $stylePath);
    
    									}
    
    								} else {
    
    									$updateErrors[] = 'Failed to read ' . $stylesheet;
    
    									writeLog('Failed to read ' . $stylesheet);
    
    								}
    
    							}
    
    							if (is_dir($themePath."/static")){
    
    								$nestedFiles = scandir($themePath."/static");
    
    								$staticSlider = array_intersect($nestedFiles, array('static-slider.php'));
    
    								$staticSliderPath = $themePath . '/static/static-slider.php';
    
    								unset($sliderStatic, $new_function);
    
    								if (!empty($staticSlider)) {
    
    									$backupFileStatic = backupFile($staticSliderPath);
    
    									if ($backupFileStatic) {
    
    											$staticSliderContent = file($staticSliderPath);
    
    											if ($staticSliderContent) {
    
    												$static_slider_dom_1 = "<?php if(of_get_option('slider_type') != 'none_slider'){ ?>\n";
    
    												$static_slider_dom_2 = "\t<?php get_slider_template_part(); ?>\n";
    
    												$static_slider_dom_3 = "\n<?php }else{ ?>\n\t<div class=\"slider_off\"></div>\n<?php } ?>\n";
    
    												for ($i=0, $arrayCount = count($staticSliderContent); $i < $arrayCount ; $i++) {
    
    													if(stripos($staticSliderContent[$i], "get_template_part('slider')")!==false){
    
    														$sliderStatic = $i;
    
    													}
    
    													if(stripos($staticSliderContent[$i], "get_slider_template_part")!==false){
    
    														$new_function = $i;
    
    													}
    
    												}
    
    												if(!isset($sliderStatic) && !isset($new_function)){
    
    													$staticSliderContent = "<?php /* Static Name: Slider */ ?>\n<?php if(of_get_option('slider_type') != 'none_slider'){ ?>\n\t<div id=\"slider-wrapper\" class=\"slider\">\n\t\t<div class=\"container\">\n\t\t\t<?php get_slider_template_part(); ?>\n\t\t</div>\n\t</div><!-- .slider -->\n<?php }else{ ?>\n\t<div class=\"slider_off\"><!--slider off--></div>\n<?php } ?>";
    
    												}else{
    
    													if(!isset($new_function)){
    
    														$staticSliderContent[$sliderStatic] = $static_slider_dom_2;
    
    														array_splice($staticSliderContent, 1, 0, $static_slider_dom_1);
    
    														array_push($staticSliderContent, $static_slider_dom_3);
    
    													}
    
    												}
    
    												if (file_put_contents($staticSliderPath, $staticSliderContent)) {
    
    													writeLog('Save ' . $staticSliderPath);
    
    												} else {
    
    													$updateErrors[] = 'Failed to save ' . $staticSliderPath;
    
    													writeLog('Failed to save ' . $staticSliderPath);
    
    												}
    
    											} else {
    
    												$updateErrors[] = 'Failed to read ' . $staticSlider;
    
    												writeLog('Failed to read ' . $staticSlider);
    
    											}
    
    									}else {
    
    										$updateErrors[] = 'Failed to backup ' . $staticSliderPath;
    
    										writeLog('Failed to backup ' . $staticSliderPath);
    
    									}
    
    								}
    
    							}
    
    						} else {
    
    							$updateErrors[] = $themePath . ' is not writable';
    
    							writeLog($themePath . ' is not writable');
    
    						}
    
    					}
    
    				}
    
    			}
    
    		}
    
    	};
    
    //end changeChildTheme
    
    	if (has_action('after_switch_theme')) {
    
    		add_action('after_switch_theme', 'activateCherryForceUpdate', 10, 0);
    
    	} else {
    
    		if (is_admin() && isset($_GET['activated']) && $pagenow == 'themes.php') {
    
    			activateCherryForceUpdate();
    
    		}
    
    	}
    
    	function activateCherryForceUpdate() {
    
    		global $cherryTemplates;
    
    		global $headerFooterPattern;
    
    		$style = CHILD_DIR . '/style.css';
    
    		$themeTemplate = false;
    
    		if (function_exists('wp_get_theme')) {
    
    			$theme = wp_get_theme();
    
    			if (file_exists($style) && $theme->exists()) {
    
    				if ($theme->Stylesheet != $theme->Template) {
    
    					$themeTemplate = $theme->Template;
    
    				}
    
    			} else {
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		} elseif (function_exists('get_theme_data')) {
    
    			if (file_exists($style)) {
    
    				$theme = get_theme_data($style);
    
    				$themeTemplate = $theme['Template'];
    
    			} else {
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		} else {
    
    			if (file_exists($style)) {
    
    				$content = file_get_contents($style);
    
    				if ($content) {
    
    					$pattern = '/\s*template\s*:\s*([^\n]+)\s*/is';
    
    					preg_match($pattern, $content, $matches);
    
    					if (!empty($matches[1])) {
    
    						$themeTemplate = trim($matches[1]);
    
    					}
    
    				} else {
    
    					writeLog('Failed to read ' . $style);
    
    				}
    
    			} else {
    
    				writeLog($style . ' does not exist');
    
    			}
    
    		}
    
    		if ($themeTemplate == 'CherryFramework') {
    
    			$themePath = get_stylesheet_directory();
    
    			$files = scandir($themePath);
    
    			$themeTemplates = array_intersect($files, $cherryTemplates);
    
    			$cherryForceUpdate = false;
    
    			if (!empty($themeTemplates)) {
    
    				foreach ($themeTemplates as $template) {
    
    					$templatePath = $themePath . '/' . $template;
    
    					$content = file_get_contents($templatePath);
    
    					if ($content) {
    
    						$headerFooterMatchesCount = preg_match($headerFooterPattern, $content);
    
    						if ($headerFooterMatchesCount == 1) {
    
    							$cherryForceUpdate = true;
    
    							break;
    
    						}
    
    					} else {
    
    						writeLog('Failed to read ' . $templatePath);
    
    					}
    
    				}
    
    			}
    
    			if ($cherryForceUpdate) {
    
    				update_option('cherry_force_update', 1);
    
    			} else {
    
    				update_option('cherry_force_update', 0);
    
    			}
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  slider function
    
    //------------------------------------------------------
    
    	if (!function_exists("my_post_type_slider")) {
    
    		function my_post_type_slider() {
    
    			register_post_type( 'slider',
    
    				array(
    
    					'label'               => theme_locals("slides"),
    
    					'singular_label'      => theme_locals("slides"),
    
    					'_builtin'            => false,
    
    					'exclude_from_search' => true, // Exclude from Search Results
    
    					'capability_type'     => 'page',
    
    					'public'              => true,
    
    					'show_ui'             => true,
    
    					'show_in_nav_menus'   => false,
    
    					'rewrite' => array(
    
    								'slug'       => 'slide-view',
    
    								'with_front' => FALSE,
    
    					),
    
    					'query_var' => "slide", // This goes to the WP_Query schema
    
    					'menu_icon' => PARENT_URL . '/includes/images/icon_slides.png',
    
    					'supports'  => array(
    
    									'title',
    
    									// 'custom-fields',
    
    									'thumbnail'
    
    					)
    
    				)
    
    			);
    
    		}
    
    		add_action('init', 'my_post_type_slider');
    
    	}
    
    	if (!function_exists("get_slider_template_part")) {
    
    		function get_slider_template_part() {
    
    			switch (of_get_option('slider_type')) {
    
    				case "accordion_slider":
    
    					$slider_type = "accordion";
    
    				break;
    
    				default:
    
    					$slider_type = "slider";
    
    			}
    
    			return get_template_part($slider_type);
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  Warning notice
    
    //------------------------------------------------------
    
    	add_action( 'admin_notices', 'warning_notice' );
    
    	function warning_notice() {
    
    		global $pagenow;
    
    		$pageHidden = array('admin.php');
    
    		if (!get_user_meta(get_current_user_id(), '_wp_hide_notice', true) && is_admin() && !FILE_WRITEABLE && !in_array($pagenow, $pageHidden)) {
    
    			printf('<div class="updated"><strong><p>'.theme_locals('warning_notice_2').'</p><p>'.theme_locals('warning_notice_3').'</p><p><a href="'.esc_url(add_query_arg( 'wp_nag', wp_create_nonce( 'wp_nag' ))).'">'.theme_locals('dismiss_notice').'</a></p></strong></div>');
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  Post Meta
    
    //------------------------------------------------------
    
    	$global_meta_elements = array();
    
    	function get_post_metadata( $args = array() ) {
    
    		global $global_meta_elements;
    
    		if(array_key_exists('meta_elements', $args)){
    
    			$global_meta_elements = array_unique(array_merge($global_meta_elements, $args['meta_elements']));
    
    		}
    
    		$meta_elements_empty  = isset($args['meta_elements']) ? false : true ;
    
    		$defaults = array(
    
    						'meta_elements' =>  array('start_unite', 'date', 'author', 'permalink', 'end_unite', 'start_unite', 'categories', 'tags', 'end_unite', 'start_unite', 'comment', 'views', 'like', 'dislike', 'end_unite'),
    
    						'meta_class' => 'post_meta',
    
    						'meta_before' => '',
    
    						'meta_after'  => '',
    
    						'display_meta_data' => true
    
    					);
    
    		$args = wp_parse_args( $args, $defaults );
    
    		$post_meta_type = (of_get_option('post_meta') == 'true' || of_get_option('post_meta') == '') ? 'line' : of_get_option('post_meta');
    
    		if($meta_elements_empty){
    
    			foreach ($global_meta_elements as $key) {
    
    				if($key != 'end_unite || start_unite'){
    
    				unset($args['meta_elements'][array_search($key, $args['meta_elements'])]);
    
    				}
    
    			}
    
    		}
    
    		if($post_meta_type!='false' && $args['display_meta_data']){
    
    			$post_ID = get_the_ID();
    
    			$post_type = get_post_type($post_ID);
    
    			$icon_tips_before = ($post_meta_type == 'icon') ? '<div class="tips">' : '';
    
    			$icon_tips_after = ($post_meta_type == 'icon') ? '</div>' : '';
    
    			$user_login = is_user_logged_in() ? true : false;
    
    			$user_id = $user_login ? get_current_user_id() : "";
    
    			$voting_class = $user_login ? 'ajax_voting ' : 'not_voting ';
    
    			$voting_url = PARENT_URL.'/includes/voting.php?post_ID='.$post_ID.'&get_user_ID='.$user_id;
    
    			$get_voting_array = cherry_getPostVoting($post_ID, $user_id);
    
    			$user_voting = $get_voting_array['user_voting'];
    
    			echo $args['meta_before'].'<div class="'.$args['meta_class'].' meta_type_'.$post_meta_type.'">';
    
    				foreach ($args['meta_elements'] as $value) {
    
    					switch ($value) {
    
    						case 'date':
    
    							if(of_get_option('post_date') != 'no'){ ?>
    
    								<div class="post_date">
    
    									<i class="icon-calendar"></i>
    
    									<?php echo $icon_tips_before . '<time datetime="' . get_the_time('Y-m-d\TH:i:s') . '">' . get_the_date() . '</time>' . $icon_tips_after; ?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'author':
    
    							if(of_get_option('post_author') != 'no'){ ?>
    
    								<div class="post_author">
    
    									<i class="icon-user"></i>
    
    									<?php
    
    									echo $icon_tips_before;
    
    									the_author_posts_link();
    
    									echo $icon_tips_after;
    
    									?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'permalink':
    
    							if(of_get_option('post_permalink') != 'no' && !is_singular()){ ?>
    
    								<div class="post_permalink">
    
    									<i class="icon-link"></i>
    
    									<?php echo $icon_tips_before.'<a href="'.get_permalink().'" title="'.get_the_title().'">'.theme_locals('permalink_to').'</a>'.$icon_tips_after; ?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'categories':
    
    							if(of_get_option('post_category') != 'no'){ ?>
    
    								<div class="post_category">
    
    									<i class="icon-bookmark"></i>
    
    									<?php
    
    										echo $icon_tips_before;
    
    										if($post_type != 'post'){
    
    											$custom_category = !is_wp_error(get_the_term_list($post_ID, $post_type.'_category','',', ')) ? get_the_term_list($post_ID, $post_type.'_category','',', ') : theme_locals('has_not_category');
    
    											echo $custom_category;
    
    										}else{
    
    											the_category(', ');
    
    										}
    
    										echo $icon_tips_after;
    
    									?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'tags':
    
    							if(of_get_option('post_tag') != 'no'){ ?>
    
    								<div class="post_tag">
    
    									<i class="icon-tag"></i>
    
    									<?php
    
    										echo $icon_tips_before;
    
    										if(get_the_tags() || has_term('', $post_type.'_tag', $post_ID)){
    
    											echo ($post_type != 'post') ? the_terms($post_ID, $post_type.'_tag','',', ') : the_tags('', ', ');
    
    										} else {
    
    											echo theme_locals('has_not_tags');
    
    										}
    
    										echo $icon_tips_after;
    
    									 ?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'comment':
    
    							if(of_get_option('post_comment') != 'no'){ ?>
    
    								<div class="post_comment">
    
    									<i class="icon-comments"></i>
    
    									<?php
    
    										echo $icon_tips_before;
    
    										comments_popup_link(theme_locals('no_comments'), theme_locals('comment'), '% '.theme_locals('comments'), theme_locals('comments_link'), theme_locals('comments_closed'));
    
    										echo $icon_tips_after;
    
    									 ?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'views':
    
    							if(of_get_option('post_views') != 'no'){ ?>
    
    								<div class="post_views" title="<?php echo theme_locals('number_views'); ?>">
    
    									<i class="icon-eye-open"></i>
    
    									<?php echo $icon_tips_before.cherry_getPostViews($post_ID).$icon_tips_after; ?>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'dislike':
    
    							if(of_get_option('post_dislike') != 'no'){
    
    								$dislike_url = ($user_login && $user_voting=='none') ? 'href="'.$voting_url.'&voting=dislike"' : '';
    
    								$dislike_count = $get_voting_array['dislike_count'];
    
    								$dislike_title = $user_login ? theme_locals('dislike') : theme_locals('not_voting');
    
    								$dislike_class = ($user_voting == 'dislike') ? 'user_dislike ' : '';
    
    								if($user_voting!='none'){
    
    									$voting_class = "user_voting ";
    
    								}
    
    							?>
    
    								<div class="post_dislike">
    
    									<a <?php echo $dislike_url; ?> class="<?php echo $voting_class.$dislike_class; ?>" title="<?php echo $dislike_title; ?>" date-type="dislike" >
    
    										<i class="icon-thumbs-down"></i>
    
    										<?php echo $icon_tips_before.'<span class="voting_count">'.$dislike_count.'</span>'.$icon_tips_after; ?>
    
    									</a>
    
    								</div>
    
    								<?php
    
    							}
    
    							break;
    
    						case 'like':
    
    							if(of_get_option('post_like') != 'no'){
    
    								$like_url = ($user_login && $user_voting=='none') ? 'href="'.$voting_url.'&voting=like"' : '';
    
    								$like_count = $get_voting_array['like_count'];
    
    								$like_title = $user_login ? theme_locals('like') : theme_locals('not_voting');
    
    								$like_class = ($user_voting == 'like') ? 'user_like ' : '';
    
    								if($user_voting!='none'){
    
    									$voting_class = "user_voting ";
    
    								}
    
    							?>
    
    								<div class="post_like">
    
    									<a <?php echo $like_url; ?> class="<?php echo $voting_class.$like_class; ?>" title="<?php echo $like_title; ?>" date-type="like" >
    
    										<i class="icon-thumbs-up"></i>
    
    										<?php echo $icon_tips_before.'<span class="voting_count">'.$like_count.'</span>'.$icon_tips_after; ?>
    
    									</a>
    
    								</div>
    
    								<?php
    
    							}
    
    						break;
    
    						case 'start_unite':
    
    							echo '<div class="post_meta_unite clearfix">';
    
    						break;
    
    						case 'end_unite':
    
    							echo '</div>';
    
    						break;
    
    						case 'start_group':
    
    							echo '<div class="meta_group clearfix">';
    
    						break;
    
    						case 'end_group':
    
    							echo '</div>';
    
    						break;
    
    					}
    
    				}
    
    			echo '</div>'.$args['meta_after'];
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  Post Views
    
    //------------------------------------------------------
    
    	function cherry_getPostViews($postID){
    
    		return (get_post_meta($postID, 'post_views_count', true) == '') ? "0" : get_post_meta($postID, 'post_views_count', true);
    
    	}
    
    	function cherry_setPostViews($postID){
    
    		$count_key = 'post_views_count';
    
    		$count = get_post_meta($postID, $count_key, true);
    
    		if($count==''){
    
    			$count = 1;
    
    		}else{
    
    			$count++;
    
    		}
    
    		update_post_meta($postID, $count_key, $count);
    
    	}
    
    //------------------------------------------------------
    
    //  Post voting
    
    //------------------------------------------------------
    
    	function cherry_getPostVoting($postID, $user_id){
    
    		$like_count = (get_post_meta($postID, 'post_like', true) == false) ? "0" : get_post_meta($postID, 'post_like', true);
    
    		$dislike_count = (get_post_meta($postID, 'post_dislike', true) == false) ? "0" : get_post_meta($postID, 'post_dislike', true);
    
    		$user_like_array = get_post_meta($postID, 'user_like');
    
    		$user_dislike_array = get_post_meta($postID, 'user_dislike');
    
    		$user_voting = 'none';
    
    		if(in_array($user_id, $user_like_array)){
    
    			$user_voting = 'like';
    
    		}else if(in_array($user_id, $user_dislike_array)){
    
    			$user_voting = 'dislike';
    
    		}
    
    		return array('like_count' => $like_count, 'dislike_count' => $dislike_count, 'user_voting' => $user_voting);
    
    	}
    
    //------------------------------------------------------
    
    //  Get team social networks
    
    //------------------------------------------------------
    
    	function cherry_get_post_networks($args = array()){
    
    		global $post;
    
    		extract(
    
    			wp_parse_args(
    
    				$args,
    
    				array(
    
    					'post_id' => get_the_ID(),
    
    					'class' => 'post_networks',
    
    					'before_title' => '<h4>',
    
    					'after_title' => '</h4>',
    
    					'display_title' => true,
    
    					'output_type' => 'echo'
    
    				)
    
    			)
    
    		);
    
    		$networks_array = explode(" ", get_option('fields_id_value'.$post_id, ''));
    
    		if($networks_array[0]!=''){
    
    			$count = 0;
    
    			$network_title = get_post_meta($post_id, 'network_title', true);
    
    			$output = '<div class="'.$class.'">';
    
    			$output .= $network_title && $display_title ? $before_title.$network_title.$after_title : '';
    
    			$output .= '<ul class="clearfix unstyled">';
    
    			foreach ($networks_array as $networks_id) {
    
    				$network_array = explode(";", get_option('network_'.$post_id.'_'.$networks_id, array('','','')));
    
    				$output .= '<li class="network_'.$count.'">';
    
    				$output .= $network_array[2] ? '<a href="'.$network_array[2].'" title="'.$network_array[1].'">' : '' ;
    
    				$output .= $network_array[0] ? '<span class="'.$network_array[0].'"></span>' :'';
    
    				$output .= $network_array[1] ? '<span class="network_title">'.$network_array[1].'</span>' : '' ;
    
    				$output .= $network_array[2] ? '</a>' : '' ;
    
    				$output .= '</li>';
    
    				++$count;
    
    			}
    
    			$output .= '</ul></div>';
    
    			if($output_type == 'echo'){
    
    				echo $output;
    
    			}else{
    
    				return $output;
    
    			}
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  Related Posts
    
    //------------------------------------------------------
    
    	if(!function_exists('cherry_related_posts')){
    
    		function cherry_related_posts($args = array()){
    
    			global $post;
    
    			$default = array(
    
    				'post_type' => get_post_type($post),
    
    				'class' => 'related-posts',
    
    				'class_list' => 'related-posts_list',
    
    				'class_list_item' => 'related-posts_item',
    
    				'display_title' => true,
    
    				'display_link' => true,
    
    				'display_thumbnail' => true,
    
    				'width_thumbnail' => 250,
    
    				'height_thumbnail' => 150,
    
    				'before_title' => '<h3 class="related-posts_h">',
    
    				'after_title' => '</h3>',
    
    				'posts_count' => 4
    
    			);
    
    			extract(array_merge($default, $args));
    
    			$post_tags = wp_get_post_terms($post->ID, $post_type.'_tag', array("fields" => "slugs"));
    
    			$tags_type = $post_type=='post' ? 'tag' : $post_type.'_tag' ;
    
    			$suppress_filters = get_option('suppress_filters');// WPML filter
    
    			$blog_related = apply_filters( 'cherry_text_translate', of_get_option('blog_related'), 'blog_related' );
    
    			if ($post_tags && !is_wp_error($post_tags)) {
    
    				$args = array(
    
    					"$tags_type" => implode(',', $post_tags),
    
    					'post_status' => 'publish',
    
    					'posts_per_page' => $posts_count,
    
    					'ignore_sticky_posts' => 1,
    
    					'post__not_in' => array($post->ID),
    
    					'post_type' => $post_type,
    
    					'suppress_filters' => $suppress_filters
    
    					);
    
    				query_posts($args);
    
    				if ( have_posts() ) {
    
    					$output = '<div class="'.$class.'">';
    
    					$output .= $display_title ? $before_title.$blog_related.$after_title : '' ;
    
    					$output .= '<ul class="'.$class_list.' clearfix">';
    
    					while( have_posts() ) {
    
    						the_post();
    
    						$thumb   = has_post_thumbnail() ? get_post_thumbnail_id() : PARENT_URL.'/images/empty_thumb.gif';
    
    						$blank_img = stripos($thumb, 'empty_thumb.gif');
    
    						$img_url = $blank_img ? $thumb : wp_get_attachment_url( $thumb,'full');
    
    						$image   = $blank_img ? $thumb : aq_resize($img_url, $width_thumbnail, $height_thumbnail, true) or $img_url;
    
    						$output .= '<li class="'.$class_list_item.'">';
    
    						$output .= $display_thumbnail ? '<figure class="thumbnail featured-thumbnail"><a href="'.get_permalink().'" title="'.get_the_title().'"><img data-src="'.$image.'" alt="'.get_the_title().'" /></a></figure>': '' ;
    
    						$output .= $display_link ? '<a href="'.get_permalink().'" >'.get_the_title().'</a>': '' ;
    
    						$output .= '</li>';
    
    					}
    
    					$output .= '</ul></div>';
    
    					echo $output;
    
    				}
    
    				wp_reset_query();
    
    			}
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  Main Layout option
    
    //------------------------------------------------------
    
    	if (of_get_option('main_layout') == 'fixed') {
    
    		add_filter('body_class','cherry_layout_class');
    
    		function cherry_layout_class($classes) {
    
    			$classes[] = 'cherry-fixed-layout';
    
    			return $classes;
    
    		}
    
    	}
    
    //------------------------------------------------------
    
    //  General option
    
    //------------------------------------------------------
    
    	if ( (of_get_option('header_background') != '')
    
    		|| (of_get_option('header_color') !='')
    
    		|| (of_get_option('body_background') !='')
    
    		|| (of_get_option('custom_css') !='') ) {
    
    		add_action('wp_head', 'cherry_general_opt');
    
    		function cherry_general_opt(){
    
    			$output = "\n<style type='text/css'>";
    
    			// body bg option
    
    			if (of_get_option('body_background') !='') {
    
    				$background = of_get_option('body_background');
    
    				if ($background != '') {
    
    					if ($background['image'] != '') {
    
    						$output .= "\nbody { background-image:url(".$background['image']. "); background-repeat:".$background['repeat']."; background-position:".$background['position']."; background-attachment:".$background['attachment']."; }";
    
    					}
    
    					if($background['color'] != '') {
    
    						$output .= "\nbody { background-color:".$background['color']." }";
    
    					}
    
    				}
    
    			}
    
    			// header bg option
    
    			if (of_get_option('header_color') !='') {
    
    				$header_styling = of_get_option('header_color');
    
    				update_option('child_header_color', $header_styling);
    
    				$output .= "\n.header { background-color:".$header_styling." }";
    
    			} else {
    
    				$header_styling = of_get_option('header_background');
    
    				if ($header_styling['image'] != '') {
    
    					$output .= "\n.header { background-image:url(".$header_styling['image']. "); background-repeat:".$header_styling['repeat']."; background-position:".$header_styling['position']."; background-attachment:".$header_styling['attachment']."; }";
    
    				}
    
    				if ($header_styling['color'] != '') {
    
    					$output .= "\n.header { background-color:".$header_styling['color']." }";
    
    				} else {
    
    					if (get_option('child_header_color') && !is_array(get_option('child_header_color')) ) {
    
    						$output .= "\n.header { background-color:".get_option('child_header_color')." }";
    
    					}
    
    				}
    
    			}
    
    			// custom CSS
    
    			$output .= "\n".htmlspecialchars_decode(of_get_option('custom_css'));
    
    			$output .= "\n</style>";
    
    			echo $output;
    
    		}
    
    	}
    
    	/**
    
    	*
    
    	* Register hook in update.php page
    
    	*
    
    	**/
    
    	add_action('load-update.php', 'cherry_register_update_page_hook');
    
    	function cherry_register_update_page_hook(){
    
    		if ( isset($_GET['action']) ) {
    
    			$plugin = isset($_REQUEST['plugin']) ? trim($_REQUEST['plugin']) : '';
    
    			$theme  = isset($_REQUEST['theme']) ? urldecode($_REQUEST['theme']) : '';
    
    			$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
    
    			if ( 'CherryFramework' == $theme ) {
    
    				if ( 'upgrade-theme' == $action ) {
    
    					add_action('upgrader_process_complete', 'after_cherry_theme_upgrade_call');
    
    				} elseif ( 'upload-theme' == $action ) {
    
    					add_action('upgrader_process_complete', 'after_cherry_theme_upgrade_call');
    
    				}
    
    			}
    
    			if ( 'cherry-plugin' == $plugin ) {
    
    				if ( 'upgrade-plugin' == $action ) {
    
    					add_action('upgrader_process_complete', 'after_cherry_plugin_upgrade_call');
    
    				}
    
    			}
    
    		}
    
    	}
    
    	/**
    
    	*
    
    	* Register hook in update-core.php page
    
    	*
    
    	**/
    
    	add_action('load-update-core.php', 'cherry_register_update_core_page_hook');
    
    	function cherry_register_update_core_page_hook(){
    
    		if ( isset( $_GET['themes'] ) )
    
    			$themes = explode( ',', stripslashes($_GET['themes']) );
    
    		elseif ( isset( $_POST['checked'] ) )
    
    			$themes = (array) $_POST['checked'];
    
    		if ( !isset($themes) )
    
    			return;
    
    		if ( array_search('CherryFramework', $themes) === FALSE )
    
    			return;
    
    		if ( isset($_GET['action']) ) {
    
    			$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
    
    			if ( 'do-theme-upgrade' == $action ) {
    
    				add_action('upgrader_process_complete', 'after_cherry_theme_upgrade_call');
    
    			}
    
    		}
    
    	}
    
    	/**
    
    	*
    
    	* Register hook after CherryFramework upgrade
    
    	*
    
    	**/
    
    	function after_cherry_theme_upgrade_call(){
    
    		do_action('after_cherry_theme_upgrade');
    
    	}
    
    	/**
    
    	*
    
    	* Register hook after Cherry Plugin upgrade
    
    	*
    
    	**/
    
    	function after_cherry_plugin_upgrade_call(){
    
    		do_action('after_cherry_plugin_upgrade');
    
    	}
    
    	/**
    
    	*
    
    	* Unpack Cherry Plugin package
    
    	*
    
    	**/
    
    	add_action('after_cherry_theme_upgrade', 'cherry_plugin_unpack_package');
    
    	function cherry_plugin_unpack_package(){
    
    		$plugin = 'cherry-plugin/cherry-plugin.php';
    
    		if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin ) ) {
    
    			return;
    
    		}
    
    		if ( !function_exists( 'is_plugin_active' ) ) {
    
    			require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
    
    		}
    
    		if ( is_plugin_active( $plugin ) )
    
    			return;
    
    		$file   = PARENT_DIR . '/includes/plugins/cherry-plugin.zip';
    
    		$to     = WP_PLUGIN_DIR . '/cherry-plugin/';
    
    		$result = false;
    
    		if ( !file_exists($file) )
    
    			return $result;
    
    		if ( !function_exists('WP_Filesystem') ) {
    
    			require_once(ABSPATH . 'wp-admin/includes/file.php');
    
    		}
    
    		WP_Filesystem();
    
    		global $wp_filesystem;
    
    		// Clean up plugin directory
    
    		if ( $wp_filesystem->is_dir($to) )
    
    			$wp_filesystem->delete($to, true);
    
    		$result = unzip_file( $file, $to );
    
    		if ( is_wp_error($result) ) {
    
    			if ( 'incompatible_archive' == $result->get_error_code() ) {
    
    				return new WP_Error( 'incompatible_archive', __('The package could not be installed.', CURRENT_THEME), $result->get_error_data() );
    
    			}
    
    		}
    
    		return $result;
    
    	}
    
    	/**
    
    	*
    
    	* Set Up Cherry Plugin
    
    	*
    
    	**/
    
    	add_action('after_setup_theme', 'cherry_plugin_setup');
    
    	function cherry_plugin_setup(){
    
    		$plugin = 'cherry-plugin/cherry-plugin.php';
    
    		if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin ) ) {
    
    			return;
    
    		}
    
    		if ( !function_exists( 'is_plugin_active' ) ) {
    
    			require_once( ABSPATH . 'wp-admin/includes/plugin.php' );
    
    		}
    
    		if ( is_plugin_active( $plugin ) )
    
    			return;
    
    		$file   = PARENT_DIR . '/includes/plugins/cherry-plugin.zip';
    
    		$to     = WP_PLUGIN_DIR . '/cherry-plugin/';
    
    		$result = false;
    
    		if ( !file_exists($file) )
    
    			return $result;
    
    		if ( !function_exists('WP_Filesystem') ) {
    
    			require_once(ABSPATH . 'wp-admin/includes/file.php');
    
    		}
    
    		WP_Filesystem();
    
    		global $wp_filesystem;
    
    		$result = unzip_file( $file, $to );
    
    		if ( is_wp_error($result) ) {
    
    			if ( 'incompatible_archive' == $result->get_error_code() ) {
    
    				return new WP_Error( 'incompatible_archive', __('The package could not be installed.', CURRENT_THEME), $result->get_error_data() );
    
    			

Viewing 3 replies - 1 through 3 (of 3 total)
  • The topic ‘Remove "Add to cart" on home page’ is closed to new replies.