erreur modules_handler.php on line 147

3 posts in this topic

Posted · Report post

bonjour,

ce matin nous nous retrouvons avec cette erreur :

Parse error: syntax error, unexpected T_PAAMAYIM_NEKUDOTAYIM in /homepages/1/d391147349/htdocs/........./peel-shopping_8_0_1/lib/fonctions/modules_handler.php on line 147

je viens de regarder et la ligne 147 correspond a cette fonction : 

et plus précisément à cette ligne : 

} elseif(method_exists($class_name, $method_name)) {
            $result = $class_name::$method_name($params);

/**
 * Appelle la fonction correspondant au $hook pour chaque module installé
 * La fonction doit s'appeler : [nom du module]_[nom du hook]
 *
 * @return
 */
function call_module_hook($hook, $params, $mode = 'boolean') {
	if($mode == 'boolean') {
		$output = true;
	} elseif($mode == 'array') {
		$output = array();	
	} else {
		$output = null;
	}
	if (defined('PEEL_DEBUG') && PEEL_DEBUG) {
		$start_time = microtime_float();
	}
	foreach(vb($GLOBALS['modules_installed'], array()) as $this_module) {
		// On charge le hook, soit en tant que fonction, soit en tant que méthode de la classe du module
		$function_name = $this_module . '_hook_' . $hook;
		$class_name = String::ucfirst($this_module);
		$method_name = 'hook_' . $hook;
		unset($result);
		if(function_exists($function_name)) {
			$result = $function_name($params);
		} elseif(method_exists($class_name, $method_name)) {
			$result = $class_name::$method_name($params);
		}
		if(isset($result)) {
			if($mode == 'boolean') {
				$output = ($output && $result);
			} elseif($mode == 'array') {
				if(!is_array($result)) {
					$result = array($result);
				}
				$output = array_merge_recursive($output, $result);
			} elseif($mode == 'max') {
				$output = max($output, $result);
			} elseif($mode == 'min') {
				if($output === null) {
					$output = $result;
				} else {
					$output = min($output, $result);
				}
			} elseif($mode == 'unique') {
				if($output === null || !empty($result)) {
					$output = $result;
				}
			} elseif($mode == 'add') {
				$output += $result;
			} else {
				$output .= $result;
			}
		}
	}
	if (defined('PEEL_DEBUG') && PEEL_DEBUG) {
		$end_time = microtime_float();
		$GLOBALS['peel_debug'][] = array('text' => 'Hook ' . $hook, 'duration' => $end_time - $start_time, 'start' => $start_time - $GLOBALS['script_start_time']);
	}
	return $output; 
}

avais vous une idée ??

merci par avance

Share this post


: post
Share on other sites

Posted · Report post

Bonjour,

Il faut que vous remplaciez ces 2 lignes par :

} elseif(class_exists($class_name) && method_exists($class_name, $method_name)) {
            // La syntaxe $class_name::$method_name($params) n'est pas valide pour PHP<5.3 => on utilise call_user_func_array
            $result = call_user_func_array(array($class_name, $method_name), array($params));

Par ailleurs, il serait temps que vous changiez de version PHP sur votre hébergement car votre version PHP est apparemment périmée depuis plusieurs années, cf. http://php.net/eol.php

Share this post


: post
Share on other sites

Posted · Report post

merci beaucoup

en changeant de version PHP sa a tout résolu

 

merci encore

 

Share this post


: post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

Twitter Advisto ecommerce

Facebook PEEL Shopping