hdonoblepsias Δημοσ. 27 Νοεμβρίου 2014 Δημοσ. 27 Νοεμβρίου 2014 Εδω και μια εβδομάδα, παιδεύομαι με ένα site που έχω 2 χρόνια και απλά θέλω να υπάρχει. Αναβαθμίζει ο host την php, μου ξεσκίζει όλο το site. Βάζει μια επιλογή να αναβαθμίζει αυτόματα το wp και τα plugin, μου ξαναξεσκίζει όλο το site. Και σήμερα, πάω να μπώ στο site και φαίνεται μόνο η σελίδα και το menu. Δηλαδή έχουν εξαφανιστεί ΟΛΑ τα positions. Όταν πάω να μπω στο admin παίρνω λευκη σελίδα με το παρακάτω error... Fatal error: Call to a member function data() on a non-object in /home/xxx/xxxx/xxxxx/wp-content/themes/yoo_spark_wp/warp/systems/wordpress.3.0/helpers/system.phpon line 509 Τι να κάνω? To κομμάτι του κώδικα που είναι στην 509 σειρά είναι το add_object_page('', $name->data(), 8, 'warp', false, $icon); <?php /** * @package Warp Theme Framework * @author YOOtheme http://www.yootheme.com * @copyright Copyright 2007 - 2011 YOOtheme GmbH * @license YOOtheme Proprietary Use License (http://www.yootheme.com/license) */ /* Class: WarpHelperSystem Wordpress system helper class, provides Wordpress 3.0 Blog integration (http://wordpress.org) */ class WarpHelperSystem extends WarpHelper { /* system path */ var $path; /* system url */ var $url; /* cache path */ var $cache_path; /* cache time */ var $cache_time; /* theme prefix */ var $prefix; /* theme xml */ var $xml; /* query */ var $query; /* widgets */ var $widgets; /* all widget options */ var $widget_options; /* all menu items options */ var $menu_item_options; /* all config overrides */ var $config_overrides; /* Function: Constructor Class Constructor. */ function __construct() { parent::__construct(); // parse site url $urlinfo = parse_url(get_option('siteurl')); $url = $urlinfo['path']; // init vars $this->path = rtrim(str_replace(DIRECTORY_SEPARATOR, '/', ABSPATH), '/'); $this->url = $url != '/' ? $url : null; $this->cache_path = rtrim(str_replace(DIRECTORY_SEPARATOR, '/', get_template_directory()), '/').'/cache'; $this->cache_time = 86400; $this->prefix = get_template().'_'; // set callback $this->callbacks['construct'][] = 'init'; } /* Function: init Initialize system configuration Returns: Void */ function init() { // init options $this->widget_options = get_option('warp_widget_options', array()); $this->menu_item_options = get_option($this->prefix.'menu-items', array()); $this->config_overrides = get_option($this->prefix.'overrides', array()); // init helpers $path =& $this->getHelper('path'); $config =& $this->getHelper('config'); $modules =& $this->getHelper('modules'); $xml =& $this->getHelper('xml'); // set cache directory if (!file_exists($this->cache_path)) { mkdir($this->cache_path, 0755); } // set paths $path->register($this->path.'/wp-admin', 'admin'); $path->register($this->path, 'site'); $path->register($this->cache_path, 'cache'); $path->register($path->path('warp:systems/wordpress.3.0/menus'), 'menu'); $path->register($path->path('warp:systems/wordpress.3.0/widgets'), 'widgets'); $path->register($path->path('template:').'/widgets', 'widgets'); // set translations load_theme_textdomain('warp', $path->path('template:languages')); // get theme xml $this->xml =& $xml->load($path->path('template:template.xml'), 'xml', true); // get parameter $options = array(); foreach ($this->xml->document->getElements('params') as $param) { foreach ($param->children() as $setting) { $name = $setting->attributes('name'); $options[$param->attributes('group')][] = $setting; if ($name == 'presets') { $config->set('presets', array()); } else { $config->set($name, get_option($this->prefix.$name, $setting->attributes('default'))); } } } $config->set('warp.settings.theme', $options); // get module positions $options = array(); $positions = $this->xml->document->getElement('positions'); foreach ($positions->children() as $pos) { $name = trim($pos->data()); $options[$name] = array('configurable' => true); if ($pos->attributes('configurable') === '0') { $options[$name]['configurable'] = false; $options[$name]['info'] = $pos->attributes('info') ? $pos->attributes('info') : 'This position is not configurable.'; } $modules->register($name); } $config->set('warp.positions', $options); // load widgets foreach ($path->dirs('widgets:') as $name) { if ($file = $path->path("widgets:{$name}/{$name}.php")) { require_once($file); } } // add actions add_action('wp_ajax_warp_search', array($this, 'ajaxSearch')); add_action('wp_ajax_nopriv_warp_search', array($this, 'ajaxSearch')); // register main menu register_nav_menus(array('main_menu' => 'Main Navigation Menu')); // is admin or site if (is_admin()) { // load helper $this->warp->loadHelper(array('control')); // add actions add_action('admin_init', array($this, '_adminInit')); add_action('admin_menu', array($this, '_adminMenu')); // include css/js if (isset($_GET['page']) && in_array($_GET['page'], array('warp', 'warp_widget'))) { add_action('admin_head', array($this, '_adminHead')); } } else { // add actions add_action('wp', array($this, 'overrideConfig')); // allow & and special html chars in menu item add_filter('wp_setup_nav_menu_item', create_function('$menu_item','$menu_item->title = htmlspecialchars($menu_item->title, ENT_COMPAT, "UTF-8");return $menu_item;')); // filter widgets that should not be displayed add_filter('widget_display_callback', create_function('$instance,$widget,$args',' $warp = Warp::getInstance(); $w = $warp->system->getWidget($widget->id); return $w->display ? $instance : false; '),10, 3); // remove auto-linebreaks ? if (!$config->get('wpautop', 1)) { remove_filter('the_content', 'wpautop'); } // dynamic presets ? if ($config->get('allow_dynamic_preset')) { if (!session_id()) session_start(); if (isset($_GET[$this->warp->preset_var])) { $_SESSION['_current_preset'] = preg_replace('/[^A-Z0-9-]/i', '', $_GET[$this->warp->preset_var]); } $config->set('_current_preset', isset($_SESSION['_current_preset']) ? $_SESSION['_current_preset'] : null); } $config->set('actual_date', date('d. M Y')); } } /* Function: getQuery Get current query information Returns: Object */ function getQuery() { global $wp_query; // create, if not set if (empty($this->query)) { // init vars $obj = $wp_query->get_queried_object(); $query = array(); // find current page type foreach (array('home', 'front_page', 'archive', 'search', 'single', 'page', 'category') as $type) { if (call_user_func('is_'.$type)) { $query[] = $type; if ($type == 'page') { $query[] = 'page-'.$obj->ID; } if ($type == 'category') { $query[] = 'cat-'.$obj->cat_ID; } } } $this->query = $query; } return $this->query; } /* Function: getPostCount Retrieve current post count Returns: Int */ function getPostCount() { global $wp_query; return $wp_query->post_count; } /* Function: getWidget Retrieve a widget by id Parameters: $id - Widget ID Returns: Object */ function getWidget($id) { global $wp_registered_widgets; $widget = null; $options = $this->widget_options; if (isset($wp_registered_widgets[$id]) && ($data = $wp_registered_widgets[$id])) { $widget = new stdClass(); foreach (array('id', 'name', 'classname', 'description') as $var) { $widget->$var = isset($data[$var]) ? $data[$var] : null; } if (isset($data['callback']) && is_array($data['callback']) && ($object = current($data['callback']))) { if (is_a($object, 'WP_Widget')) { $widget->type = $object->id_base; if (isset($data['params'][0]['number'])) { $number = $data['params'][0]['number']; $params = get_option($object->option_name); if (false === $params && isset($object->alt_option_name)) { $params = get_option($object->alt_option_name); } if (isset($params[$number])) { $widget->params = $params[$number]; } } } } else if ($id == 'nav_menu-0') { $widget->type = 'nav_menu'; } if (empty($widget->name)) { $widget->name = ucfirst($widget->type); } if (empty($widget->params)) { $widget->params = array(); } $widget->options = isset($options[$id]) ? $options[$id] : array(); $widget->display = $this->displayWidget($widget); } return $widget; } /* Function: getWidgets Retrieve widgets Parameters: $position - Position Returns: Array */ function getWidgets($position = null) { if (empty($this->widgets)) { foreach (wp_get_sidebars_widgets() as $pos => $ids) { $this->widgets[$pos] = array(); foreach ($ids as $id) { $this->widgets[$pos][$id] = $this->getWidget($id); } } } if (!is_null($position)) { return isset($this->widgets[$position]) ? $this->widgets[$position] : array(); } return $this->widgets; } /* Function: displayWidget Checks if a widget should be displayed Returns: Boolean */ function displayWidget($widget) { if (!isset($widget->options['display']) || in_array('*', $widget->options['display'])) return true; foreach ($this->getQuery() as $q) { if (in_array($q, $widget->options['display'])) { return true; } } return false; } /* Function: overrideConfig Overrides default config based on page Returns: Void */ function overrideConfig() { if (!count($this->config_overrides)) return; foreach ($this->getQuery() as $q) { if (isset($this->config_overrides[$q])) { $this->warp->config->parseString($this->config_overrides[$q]); } } } /* Function: isBlog Returns: Boolean */ function isBlog() { return true; } /* Function: isPreview Checks for default widgets in theme preview Returns: Boolean */ function isPreview($position) { // preview postions $positions = array('logo', 'right'); return is_preview() && in_array($position, $positions); } /* Function: ajaxSearch Ajax search callback Returns: String */ function ajaxSearch(){ global $wp_query; $result = array('results' => array()); $query = isset($_REQUEST['s']) ? $_REQUEST['s']:""; if (strlen($query)>=3) { $wp_query->query_vars['s'] = $query; $wp_query->is_search = true; foreach ($wp_query->get_posts() as $post) { $content = !empty($post->post_excerpt) ? strip_tags(do_shortcode($post->post_excerpt)) : strip_tags(do_shortcode($post->post_content)); if (strlen($content) > 255) { $content = substr($content, 0, 254).'...'; } $result['results'][] = array( 'title' => $post->post_title, 'text' => $content, 'url' => get_permalink($post->ID) ); } } die(json_encode($result)); } /* Function: _adminInit Admin init actions Returns: Void */ function _adminInit() { if ((defined('DOING_AJAX') && DOING_AJAX) && isset($_POST['warp-ajax-save'])) { // update option values foreach ($_POST as $option => $value) { if (preg_match('/^(warp_|'.preg_quote($this->prefix, '/').')/', $option)) { update_option($option, $value); } } die(); } wp_enqueue_script('warp-admin', rtrim(get_bloginfo('template_url'),'/').'/warp/systems/wordpress.3.0/js/wp-admin.js', false, '1.0'); add_action('wp_ajax_save_nav_settings', array($this,'_save_nav_settings')); add_action('wp_ajax_get_nav_settings', array($this,'_get_nav_settings')); } /* Function: _adminHead Admin head actions Returns: Void */ function _adminHead() { // init vars $path =& $this->getHelper('path'); $head[] = '<link rel="stylesheet" href="'.$path->url('warp:systems/wordpress.3.0/css/admin.css').'" type="text/css" />'; $head[] = '<script type="text/javascript" src="'.$path->url('warp:systems/wordpress.3.0/js/admin.js').'"></script>'; echo implode("\n", $head); } /* Function: _adminMenu Admin menu actions Returns: Void */ function _adminMenu() { // init vars $path =& $this->getHelper('path'); $name = $this->xml->document->getElement('name'); $icon = $path->url('warp:systems/wordpress.3.0/images/yoo_icon_16.png'); if (function_exists('add_object_page')) { add_object_page('', $name->data(), 8, 'warp', false, $icon); } else { add_menu_page('', $name->data(), 8, 'warp', false, $icon); } add_submenu_page('warp', 'Theme Options', 'Theme Options', 8, 'warp', array($this, '_adminThemeOptions')); add_submenu_page('warp', 'Widget Options', 'Widget Options', 8, 'warp_widget', array($this, '_adminWidgetOptions')); } /* Function: _adminThemeOptions Render admin theme options layout Returns: Void */ function _adminThemeOptions() { // init vars $path =& $this->getHelper('path'); $xml =& $this->getHelper('xml'); $http =& $this->getHelper('http'); $check =& $this->getHelper('checksum'); // get warp xml $warp_xml = $xml->load($path->path('warp:warp.xml'), 'xml', true); // update check $update = null; if ($url = $warp_xml->document->getElement('updateUrl')) { // get template info $template = get_template(); $version = $this->xml->document->getElement('version'); $url = sprintf('%s?application=%s&version=%s&format=raw', $url->data(), $template, $version->data()); // only check once a day if (get_option($this->prefix.'update_check') != date('Y-m-d').' '.$version->data()) { if ($request = $http->get($url)) { update_option($this->prefix.'update_check', date('Y-m-d').' '.$version->data()); update_option($this->prefix.'update_data', $request['body']); } } // decode update response $update = json_decode(get_option($this->prefix.'update_data')); } // verify theme files if (($checksums = $path->path('template:checksums')) && filesize($checksums)) { $check->verify($path->path('template:'), $log); } else { $log = false; } echo $this->warp->template->render('admin/theme_options', array('xml' => $this->xml, 'warp_xml' => $warp_xml, 'update' => $update, 'checklog' => $log)); } /* Function: _adminWidgetOptions Render admin widget options layout Returns: Void */ function _adminWidgetOptions() { // get position settings $position_settings = $this->warp->config->get('warp.positions'); // get module settings $module_settings = array(); $settings = $this->xml->document->getElement('modulesettings'); foreach ($settings->children() as $setting) { $module_settings[$setting->attributes('name')] = $setting; } echo $this->warp->template->render('admin/widget_options', compact('position_settings', 'module_settings')); } /* Function: getMenuItemOptions Retrieve menu by id Parameters: $id - Menu Item ID Returns: Array */ function getMenuItemOptions($id) { $menu_settings = array( 'columns' => 1, 'columnwidth' => -1, 'image' => '' ); if (isset($this->menu_item_options[$id])) { $menu_settings = array_merge($menu_settings, $this->menu_item_options[$id]); } return $menu_settings; } /* Function: _save_nav_settings Saves menu item settings Returns: Void */ function _save_nav_settings() { if (isset($_POST['menu-item'])) { $menu_item_settings = $this->menu_item_options; foreach ($_POST['menu-item'] as $itemId=>$settings){ $menu_item_settings[$itemId] = $settings; } update_option($this->prefix.'menu-items', $menu_item_settings); $this->menu_item_options = $menu_item_settings; } die(); } /* Function: _get_nav_settings Returns menu item settings as json Returns: Boolean */ function _get_nav_settings() { die(json_encode($this->menu_item_options)); } } /* Function: mb_strpos mb_strpos function for servers not using the multibyte string extension */ if (!function_exists('mb_strpos')) { function mb_strpos($haystack, $needle, $offset = 0) { return strpos($haystack, $needle, $offset); } }
leonidas_fs Δημοσ. 27 Νοεμβρίου 2014 Δημοσ. 27 Νοεμβρίου 2014 Το έπαθα και εγω χθές με την εγκατάσταση ενός Plugin. Εαν εγκατέστησες πρόσφατα κάποιο Plugin, σβήστο μέσω ftp. Συνδέσου στον ftp μετά πάνε wp-content/plugins/ και σβήσε την σελίδα του Plugin που είναι .php. Ετσι τουλάχιστον λύθηκε το δικό μου θέμα!
hdonoblepsias Δημοσ. 27 Νοεμβρίου 2014 Μέλος Δημοσ. 27 Νοεμβρίου 2014 Όχι κανένα plugin. Από οτι κατάλαβα όλο το πρόβλημα έγινε με την αναβάθμιση της PHP από τον host. Έκανα restore από ένα backup 2 εβδομάδων πριν και ξανάλλαξα χειροκίνητα την php σε παλιότερη version. Αλλά γιατί τα ξασκίζει όλα όταν αλλάζει η php?
CyberCr33p Δημοσ. 29 Νοεμβρίου 2014 Δημοσ. 29 Νοεμβρίου 2014 Γιατί το theme σου έχει κάποιες ασυμβατότητες με τη νέα έκδοση της PHP. Δεν κοιτάς εάν υπάρχει νεότερη έκδοση του;
chrism4111 Δημοσ. 7 Δεκεμβρίου 2014 Δημοσ. 7 Δεκεμβρίου 2014 Όχι κανένα plugin. Από οτι κατάλαβα όλο το πρόβλημα έγινε με την αναβάθμιση της PHP από τον host. Έκανα restore από ένα backup 2 εβδομάδων πριν και ξανάλλαξα χειροκίνητα την php σε παλιότερη version. Αλλά γιατί τα ξασκίζει όλα όταν αλλάζει η php? Το site σου ξεσκίζετε προφανώς επειδή δεν είναι συμβατό με την Νέα έκδοση της PHP. Απ' ο,τι βλέπω χρησιμοποιείς Premium theme από την Yoo themes. Προφανώς είναι πολύ παλιά η έκδοση του Warp Framework. ( Αφού το error είναι μέσα στο αρχείο του system.php ) Έχει βγει μέχρι και 7. ( Αλλα δεν είμαι σίγουρος για την συμβατότητα γενικά του Warp με το Wordpress 4, το έχω δοκιμάσει χωρίς να βρω κάποιο πρόβλημα ) Το Warp 6 παίζει πάντως στην PHP 5.4 χωρίς κανένα πρόβλημα. Τον Νοέμβρη έγινε αναβάθμιση και στον Provider που είμαι εγώ και όλα τα Site ( Joomla τα περισσότερα ) τα οποία χρησιμοποιούν Warp 6 έπαιξαν κανονικά. Επίσης εφόσον έχεις Premium theme και αγορασμένο και έχεις ακόμα Support από την Yoo themes τότε θα σου λύσουν αυτοί το πρόβλημα που έχεις ( Το support τους είναι πολύ δυνατό ). Πως άλλαξες την έκδοση της PHP ? Σε dedicated Server είσαι ?
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα