Remove "Add to cart" on home page
-
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.
-
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").' »'; } 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'); // 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() );
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").' »'; } 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'); // 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() );
- The topic ‘Remove "Add to cart" on home page’ is closed to new replies.