Jump to content

[RESOLU] Prestashop Exception Erreur 500


imprimez

Recommended Posts

Bonjour à tous,

Je me trouve face à un problème que je ne suis pas capable de résoudre seul.
J'ai un code Erreur 500 en admin et le front qui fonctionne +/- mais n'affiche plus les produits.

Le module 155 est blockcategories.
Version 1.6.0.9

Énorme merci d'avance de vous pencher sur mon problème 🙂

Voici le message en admin :

[PrestaShopException]

No access reference in table module_access for id_module 155.
at line 2202 in file classes/module/Module.php

2196. 				self::$cache_permissions[$employee->id_profile][$row['id_module']]['configure'] = $row['configure'];
2197. 			}
2198. 		}
2199. 
2200. 		if (!isset(self::$cache_permissions[$employee->id_profile][$id_module]))
2201. 			throw new PrestaShopException('No access reference in table module_access for id_module '.$id_module.'.');
2202. 
2203. 		return (bool)self::$cache_permissions[$employee->id_profile][$id_module][$variable];
2204. 	}
2205. 
2206. 	/**
  • ModuleCore::getPermissionStatic - [line 2862 - classes/controller/AdminController.php] - [2 Arguments]
    2856. 		$this->modules_list = array();
    2857. 		foreach ($all_modules as $module)
    2858. 		{
    2859. 			$perm = true;
    2860. 			if ($module->id)
    2861. 				$perm &= Module::getPermissionStatic($module->id, 'configure');
    2862. 			else
    2863. 			{
    2864. 				$id_admin_module = Tab::getIdFromClassName('AdminModules');
    2865. 				$access = Profile::getProfileAccess($this->context->employee->id_profile, $id_admin_module);
    2866. 				if (!$access['edit'])
    
  • AdminControllerCore->getModulesList - [line 1995 - classes/controller/AdminController.php] - [1 Arguments]
    1989. 							$this->list_natives_modules[] = (string)$value;
    1990. 						if ($xmlModule->attributes() == 'partner' && $key == 'name')
    1991. 							$this->list_partners_modules[] = (string)$value;
    1992. 					}
    1993. 
    1994. 		if ($this->getModulesList($this->filter_modules_list))
    1995. 		{
    1996. 			foreach ($this->modules_list as $key => $module)
    1997. 			{
    1998. 				if (in_array($module->name, $this->list_partners_modules))
    1999. 					$this->modules_list[$key]->type = 'addonsPartner';
    
  • AdminControllerCore->renderModulesList - [line 1790 - classes/controller/AdminController.php]
    1784. 		{
    1785. 			$this->content .= $this->renderDetails();
    1786. 		}
    1787. 		elseif (!$this->ajax)
    1788. 		{
    1789. 			$this->content .= $this->renderModulesList();
    1790. 			$this->content .= $this->renderKpis();
    1791. 			$this->content .= $this->renderList();
    1792. 			$this->content .= $this->renderOptions();
    1793. 
    1794. 			// if we have to display the required fields form
    
  • AdminControllerCore->initContent - [line 121 - controllers/admin/AdminLoginController.php]
    115. 		if ($password = Tools::getValue('password'))
    116. 			$this->context->smarty->assign('password', $password);
    117. 
    118. 		$this->setMedia();
    119. 		$this->initHeader();
    120. 		parent::initContent();
    121. 		$this->initFooter();
    122. 	}
    123. 	
    124. 	public function checkToken()
    125. 	{
    
  • AdminLoginControllerCore->initContent - [line 180 - classes/controller/Controller.php]
    174. 
    175. 			if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))
    176. 				$this->initHeader();
    177. 
    178. 			if ($this->viewAccess())
    179. 				$this->initContent();
    180. 			else
    181. 				$this->errors[] = Tools::displayError('Access denied.');
    182. 
    183. 			if (!$this->content_only && ($this->display_footer || (isset($this->className) && $this->className)))
    184. 				$this->initFooter();
    
  • ControllerCore->run - [line 190 - override/classes/controller/Controller.php]
    184. 
    185.             echo $content;
    186.             
    187.         } else {
    188.             $this->express_start_time = microtime(true);
    189.             $display =  parent::run();
    190. 
    191.             
    192.             return;
    193.         }
    194. 
    
  • Controller->run - [line 373 - classes/Dispatcher.php]
    367. 			// Execute hook dispatcher
    368. 			if (isset($params_hook_action_dispatcher))
    369. 				Hook::exec('actionDispatcher', $params_hook_action_dispatcher);
    370. 
    371. 			// Running controller
    372. 			$controller->run();
    373. 		}
    374. 		catch (PrestaShopException $e)
    375. 		{
    376. 			$e->displayMessage();
    377. 		}
    
  • DispatcherCore->dispatch - [line 54 - admin/index.php]
    48. 	$_POST['controller'] = strtolower($_POST['tab']);
    49. if (!isset($_REQUEST['controller']) && isset($_REQUEST['tab']))
    50. 	$_REQUEST['controller'] = strtolower($_REQUEST['tab']);
    51. 
    52. // Prepare and trigger admin dispatcher
    53. Dispatcher::getInstance()->dispatch();

 

Michaël
 

Edited by imprimez (see edit history)
Link to comment
Share on other sites

Oui, je m'attendais à cette question et je suis en cours de recherche de la version. Vu que je n'ai pas accès à l'admin, je cherche un autre moyen de trouver la version que j'utilise.

Edit : trouvé : 1.6.0.9
Pour les générations futures, l'info se trouve dans le fichier settings.inc.php

Edited by imprimez (see edit history)
Link to comment
Share on other sites

Ok, j'en ai un depuis des années. Je vais le désactiver depuis phpmyadmin

Edit J'ai désactivé le module de cache et supprimé les 2 fichiers controller et frontcontroller dans l'override.

Il y a déjà un mieux : L'accès aux produits est de nouveau disponible. L'admin ne l'est pas encore.

Ce qui est étrange, c'est que l'erreur apparait toujours pour l'override alors que le fichier n'y est plus (et ne s'est pas recréé pas tout seul)

Edit 2 : Fausse joie. Certains produits s'affichent mais pas tous

Il y a 1 erreur

  1. Ce produit n'est plus disponible.

Edit 3 : Il y a 4 lignes pour le module 155 dans la table module_access. C'est normal ?
1740014721_Sanstitre.png.8edab6fb4f43e34d358bafcf8400b56d.png

Edited by imprimez (see edit history)
Link to comment
Share on other sites

Bonjour,
Le problème est résolu. Alors, je ne sais pas si c'est quelque chose que j'ai fait ou si ça venait du serveur.
La dernière chose que j'ai faite était de vider le cache du site (dossier cache depuis le serveur FTP) et renommer le dossier du module 155 qui me posait problème.

Personnellement, je pense qu'il s'est plutôt passé quelque chose le matin au niveau du serveur et que ça a été résolu par le gestionnaire en fin de journée parce que je ne vois pas le rapport entre le message d'erreur et ce que j'ai fait. De plus, comme vous l'avez signalé plus haut, le message indiquait un accès manquant alors qu'il était bien présent dans la table.

Grand merci en tout cas pour votre aide !

Michaël

Edited by imprimez (see edit history)
Link to comment
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
×
×
  • Create New...