erreur modules_handler.php on line 147

3 messages dans ce sujet

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

merci beaucoup

en changeant de version PHP sa a tout résolu

 

merci encore

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping