Forum Replies Created

Viewing 5 replies - 1 through 5 (of 5 total)
  • Thread Starter davidx4

    (@davidx4)

    Sorry about that. The site is back up. I tried adding the code, but it doesn’t seem to work. I’m using the Cherry Framework and my functions.php currently looks like this:

    <?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');
    	add_action('do_meta_boxes', 'change_image_box');
    function change_image_box()
    {
    	remove_meta_box( 'postimagediv', 'post', 'side' );
    }
    
    	/**
    	*
    	* 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');
    
    			//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 Flickr and recent posts widgets link label for translation
    	function wpml_link_text_filter( $link_text, $widget_title ) {
    		icl_translate( 'cherry', 'link_text_' . $widget_title, $link_text );
    	}
    	//Check if WPML is activated
    	if ( defined( 'ICL_SITEPRESS_VERSION' ) ) {
    		add_filter( 'widget_linktext', 'wpml_link_text_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 cout
    	 *
    	 */
    	if (!function_exists('comment_count')) {
    		add_filter('get_comments_number', 'comment_count', 0);
    
    		function comment_count( $count ) {
    			if ( ! is_admin() ) {
    				global $id;
    				$comments_by_type = &separate_comments(get_comments('status=approve&post_id=' . $id));
    				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');
    	}
    
    	// 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").' »';
    		}
    		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 ' <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');
    
    	/*
    	 * 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 = TEMPLATEPATH . '/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 = TEMPLATEPATH . '/' . $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 = TEMPLATEPATH . '/update.log';
    		if (is_writable(TEMPLATEPATH)) {
    			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, '@import url("main-style.css");');
    									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 = STYLESHEETPATH . '/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'){ ?>
    								<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;
    					}
    				}
    			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' => 200,
    				'height_thumbnail' => 120,
    				'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
    			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.of_get_option('blog_related', theme_locals("posts_std")).$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_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');
    	}
    
    	/**
    	*
    	* Hard Cherry Plugin activation
    	*
    	**/
    	if ( version_compare( CHERRY_VER, '2.4', '>=' ) ) {
    		add_action('after_cherry_theme_upgrade', 'cherry_plugin_hard_activation');
    		add_action('after_switch_theme', 'cherry_plugin_hard_activation');
    	}
    	function cherry_plugin_hard_activation(){
    		$plugin = 'cherry-plugin/cherry_plugin.php';
    
    		if ( !function_exists('is_plugin_active') ) {
    			require_once(ABSPATH . 'wp-admin/includes/plugin.php');
    		}
    
    		if ( is_plugin_active($plugin) )
    			return;
    
    		$result = cherry_plugin_unpack_package();
    		if ( $result ) {
    			$current = get_option( 'active_plugins' );
    
    			if ( !in_array( $plugin, $current ) ) {
    				$current[] = $plugin;
    				sort( $current );
    				do_action( 'activate_plugin', trim($plugin) );
    				update_option( 'active_plugins', $current );
    				do_action( 'activate_' . trim($plugin) );
    				do_action( 'activated_plugin', trim($plugin) );
    			}
    		}
    	}
    
    	/**
    	*
    	* Unpack Cherry Plugin package
    	*
    	**/
    	function cherry_plugin_unpack_package(){
    		$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;
    	}
    
    	/**
    	*
    	* Layout class
    	*
    	**/
    	if ( !function_exists('cherry_get_layout_class') ) {
    		function cherry_get_layout_class($layout) {
    			switch ($layout) {
    
    				case 'full_width_content':
    					$layout_class = apply_filters( "cherry_layout_wrapper", "span12" );
    					break;
    
    				case 'content':
    					$layout_class = apply_filters( "cherry_layout_content_column", "span8" );
    					$layout_class .= ' '.of_get_option('blog_sidebar_pos');
    					break;
    
    				case 'sidebar':
    					$layout_class = apply_filters( "cherry_layout_sidebar_column", "span4" );
    					break;
    
    				case 'left_block':
    					$layout_class = apply_filters( "cherry_layout_left_block_column", "span7" );
    					break;
    
    				case 'right_block':
    					$layout_class = apply_filters( "cherry_layout_right_block_column", "span5" );
    					break;
    			}
    
    			return $layout_class;
    		}
    	}
    ?>

    I’ve noticed the featured image is controlled by the Cherry Options “blog” menu. Unfortunately, I can’t disable it from that menu, but is there a clue in that I can use somewhere to disable that option?

    View post on imgur.com

    Thread Starter davidx4

    (@davidx4)

    I wanted to clarify one final thing. While it’s true z-index:-1 fixed my dropdowns, it also caused my slider-wrapper’s left and right arrow slideshow functionality to be unclickable. For that, I had to switch z-index from -1 to 0, which fixed it.

    Thread Starter davidx4

    (@davidx4)

    I got it! As I suspected, the drop-down was working — the content was simply getting cut off on account of poor z-index’ing. All I had to do was add this line of code to #slider-wrapper:

    #slider-wrapper {
    background:url(http://indydjdev.hfnelson.com/wp-content/uploads/2015/07/slider.gif) repeat 50% 0%;
    padding:53px 0 12px 0;
    z-index:-1;
    }

    Thank god I figured it out, because no, Template Monster only wanted to help if I paid them $130! Yea, $130 just to fix my drop-down problem for what would have inevitably been just one line of css code. What a joke.

    Thread Starter davidx4

    (@davidx4)

    I’m not sure that solves the matter of convenience though for my client’s boss. I’d have to get the IP address from the network his boss intends to view the website at. Any other known methods?

    Oh well, I’m going to try just installing a copy of the site to my own domain name.

    Thread Starter davidx4

    (@davidx4)

    Hi Christine, that plugin worked really well! Very simple to use and install.

    Another one I just found for those who like CSS is installing “CSS Plus.” That way I can add div elements to my HTML and control each page separately with its own CSS box at the bottom of each page.
    http://cssplusplugin.wordpress.com/2013/01/11/new-version-1-4/#more-46

    Using WordPress feels too constricting to me, so it’s nice to have this easy to use CSS flexibility.

Viewing 5 replies - 1 through 5 (of 5 total)