Choupachou Posted October 13, 2014 Share Posted October 13, 2014 Bonjour, J'ai tenté d'installer un nouveau thème sur ma boutique existante puis voyant qu'il ne fonctionnait pas, j'ai fais une restauration via le phpmyadmin. Hors, depuis cette restauration, je ne peux plus naviguer dans mon frontoffice sans avoir de message d'erreur, par exemple pour l'installation d'un module, j'ai ce message d'erreur : [PrestaShopDatabaseException]Db->executeS() must be used only with select, show, explain or describe queriesat line 488 in file classes/db/Db.php 482.483. // This method must be used only with queries which display results484. if (!preg_match('#^\s*\(?\s*(select|show|explain|describe|desc)\s#i', $sql))485. {486. if (defined('_PS_MODE_DEV_') && _PS_MODE_DEV_)487. throw new PrestaShopDatabaseException('Db->executeS() must be used only with select, show, explain or describe queries');488. return $this->execute($sql, $use_cache);489. }490.491. $this->result = false;492. $this->last_query = $sql; DbCore->executeS - [line 78 - modules/shopymind/shopymind.php] - [1 Arguments]72. //Suppression doublons73. Db::getInstance()->Execute('ALTER IGNORE TABLE `' . _DB_PREFIX_ . $infos[0] . '` ADD UNIQUE INDEX ('.$infos[1].')');74. Db::getInstance()->Execute('ALTER TABLE `' . _DB_PREFIX_ . $infos[0] . '` DROP INDEX '.$infos[1].'');75. Db::getInstance()->Execute('ALTER TABLE `' . _DB_PREFIX_ . $infos[0] . '` ADD PRIMARY KEY ('.$infos[1].')');76. }77. Db::getInstance()->ExecuteS('UPDATE `' . _DB_PREFIX_ .'spmcartoorder` SET `date_upd` = "'.date('Y-m-d H:i:s').'" WHERE `date_upd` = "0000-00-00 00:00:00";');78.79. if ((is_array($this->_errors) && count($this->_errors)) || !parent::install() || !$this->registerHook('header') || !$this->registerHook('footer') || !$this->registerHook('paymentConfirm') || !$this->registerHook('updateOrderStatus'))80. return false;81.82. return true; ShopyMind->install - [line 805 - controllers/admin/AdminModulesController.php]799. // We check if method of module exists800. if (!method_exists($module, $method))801. throw new PrestaShopException('Method of module cannot be found');802.803. // Get the return value of current method804. $echo = $module->{$method}();805.806. // After a successful install of a single module that has a configuration method, to the configuration page807. if ($key == 'install' && $echo === true && strpos(Tools::getValue('install'), '|') === false && method_exists($module, 'getContent'))808. Tools::redirectAdmin(self::$currentIndex.'&token='.$this->token.'&configure='.$module->name.'&conf=12');809. } AdminModulesControllerCore->postProcessCallback - [line 1045 - controllers/admin/AdminModulesController.php]1039. $ppmReturn = $this->$ppm();1040. }1041.1042. // Call appropriate module callback1043. if (!isset($ppmReturn))1044. $this->postProcessCallback();1045.1046. if ($back = Tools::getValue('back'))1047. Tools::redirectAdmin($back);1048. }1049. AdminModulesControllerCore->postProcess - [line 171 - classes/controller/Controller.php]165. // setMedia MUST be called before postProcess166. if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className)))167. $this->setMedia();168.169. // postProcess handles ajaxProcess170. $this->postProcess();171.172. if (!empty($this->redirect_after))173. $this->redirect();174.175. if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) ControllerCore->run - [line 373 - classes/Dispatcher.php]367. // Execute hook dispatcher368. if (isset($params_hook_action_dispatcher))369. Hook::exec('actionDispatcher', $params_hook_action_dispatcher);370.371. // Running controller372. $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(); savez vous ce qu'il faut faire ? Link to comment Share on other sites More sharing options...
Xavier du Tertre Posted October 14, 2014 Share Posted October 14, 2014 Salut Sandra, Je te fais un petit "up" ce matin sur le forum et je demande sur Twitter si quelqu'un de la communauté peut venir jeter un oeil. à+! 1 Link to comment Share on other sites More sharing options...
Fabien Serny Posted October 14, 2014 Share Posted October 14, 2014 (edited) Bonjour,L'erreur décrite pour l'installation de ton module n'a à priori rien à voir avec l'installation de ton thème.Le module shopymind a une coquille dans son code, vous pouvez soit demander au développeur de la corriger, soit le faire vous même. Dans le principe, il faut ouvrir le fichier "modules/shopymind/shopymind.php", aller à la ligne 78et remplacer : Db::getInstance()->ExecuteS('UPDATE `' . _DB_PREFIX_ .'spmcartoorder` SET `date_upd` = "'.date('Y-m-d H:i:s').'" WHERE `date_upd` = "0000-00-00 00:00:00";'); par Db::getInstance()->Execute('UPDATE `' . _DB_PREFIX_ .'spmcartoorder` SET `date_upd` = "'.date('Y-m-d H:i:s').'" WHERE `date_upd` = "0000-00-00 00:00:00";'); Quel est le problème côté front ? Edited October 14, 2014 by Fabien Serny (see edit history) 1 Link to comment Share on other sites More sharing options...
fGaillard Posted October 14, 2014 Share Posted October 14, 2014 Bonjour Sandra, En effet, vous avez un bug avec votre module shopymind. Comme indiqué dans le message d'erreur, le module souhaite mettre à jour une donnée dans la base via la méthode ExecuteS(). Cette méthode ne peut servir qu'à récupérer des données, non à les mettre à jour. Je vous invite à contacter le développeur du module afin de corriger le problème. Une solution rapide consiste à modifier le fichier 'modules/shopymind/shopymind.php' et enlever le 'S' à ExecuteS(). Il ne devrait alors rester que : Db::getInstance()->execute('UPDATE `' . _DB_PREFIX_ .'spmcartoorder` ... Bonne journée Sandra. 1 Link to comment Share on other sites More sharing options...
Eolia Posted October 14, 2014 Share Posted October 14, 2014 2 choses: - Un theme qui plante, pas besoin de toucher à phpmyadmin , juste passez au thème par défaut et supprimer celui qui pose problème - L'erreur décrite ici vient du module "shopymind" qui a une erreur de codage. A voir avec son développeur... Link to comment Share on other sites More sharing options...
Choupachou Posted October 14, 2014 Author Share Posted October 14, 2014 (edited) Bonjour, Merci à vous tous.. Le soucis est que j'ai des messages d'erreur à chaque installations de module depuis que j'ai installé le nouveau thème, je ne peux plus accéder à mon site.. J'ai donc fais une restauration afin de passer sur l'ancien et le problème persiste.. Je suis débutante et je n'y comprends absolument rien ! Edited October 14, 2014 by Choupachou (see edit history) Link to comment Share on other sites More sharing options...
Choupachou Posted October 14, 2014 Author Share Posted October 14, 2014 Voilà ce que j'obtiens quand j'essaye d'aller sur ma boutique www.choupachou.com [PrestaShopDatabaseException]Table 'db546367164.xarqi5zp0_wpblocktopmenu' doesn't exist SELECT * FROM `xarqi5zp0_wpblocktopmenu` order by `order`at line 635 in file classes/db/Db.php 629. WebserviceRequest::getInstance()->setError(500, ' '.$this->getMsgError().'. From '.(isset($dbg[3]['class']) ? $dbg[3]['class'] : '').'->'.$dbg[3]['function'].'() Query was : '.$sql, 97);630. }631. else if (_PS_DEBUG_SQL_ && $errno && !defined('PS_INSTALLATION_IN_PROGRESS'))632. {633. if ($sql)634. throw new PrestaShopDatabaseException($this->getMsgError().'<br /><br /><pre>'.$sql.'</pre>');635. throw new PrestaShopDatabaseException($this->getMsgError());636. }637. }638.639. /** DbCore->displayError - [line 325 - classes/db/Db.php] - [1 Arguments]319. if ($sql instanceof DbQuery)320. $sql = $sql->build();321.322. $this->result = $this->_query($sql);323. if (_PS_DEBUG_SQL_)324. $this->displayError($sql);325. return $this->result;326. }327.328. /**329. * Execute an INSERT query DbCore->query - [line 501 - classes/db/Db.php] - [1 Arguments] Argument [0]SELECT * FROM `xarqi5zp0_wpblocktopmenu` order by `order` DbCore->executeS - [line 463 - modules/blank_blocktopmenu/blank_blocktopmenu.php] - [1 Arguments]457.458.459. private function getMenuItems()460. {461.462. $items=Db::getInstance()->ExecuteS('SELECT * FROM `'._DB_PREFIX_.'wpblocktopmenu` order by `order`');463. $results=array();464.465. /* $this->reorderItems($items,$results);*/466.467. return $items; blank_blocktopmenu->getMenuItems - [line 570 - modules/blank_blocktopmenu/blank_blocktopmenu.php]564.565. private function makeMenu()566. {567. global $cookie, $page_name;568. $curr_level=1;569. foreach($this->getMenuItems() as $key=>$item)570. {571. extract($item);572.573.574. if ($depth>$curr_level) {$this->_menu.='<ul>';} blank_blocktopmenu->makeMenu - [line 706 - modules/blank_blocktopmenu/blank_blocktopmenu.php]700. }701. 702. public function hooktop($param)703. {704. global $smarty;705. $this->makeMenu();706. 707. $smarty->assign('MENU_SEARCH', Configuration::get('MOD_wpblocktopmenu_SEARCH'));708. $smarty->assign('MENU', preg_replace('~>\s+<~', '><', $this->_menu));709. $smarty->assign('this_path', $this->_path);710. return $this->display(__FILE__, 'blank_blocktopmenu.tpl'); blank_blocktopmenu->hooktop - [line 509 - classes/Hook.php] - [1 Arguments]503.504. // Call hook method505. if ($hook_callable)506. $display = $moduleInstance->{'hook'.$hook_name}($hook_args);507. elseif ($hook_retro_callable)508. $display = $moduleInstance->{'hook'.$retro_hook_name}($hook_args);509. // Live edit510. if (!$array_return && $array['live_edit'] && Tools::isSubmit('live_edit') && Tools::getValue('ad') && Tools::getValue('liveToken') == Tools::getAdminToken('AdminModulesPositions'.(int)Tab::getIdFromClassName('AdminModulesPositions').(int)Tools::getValue('id_employee')))511. {512. $live_edit = true;513. $output .= self::wrapLiveEdit($display, $moduleInstance, $array['id_hook']); HookCore::exec - [line 448 - classes/controller/FrontController.php] - [1 Arguments]442. {443. // These hooks aren't used for the mobile theme.444. // Needed hooks are called in the tpl files.445. $this->context->smarty->assign(array(446. 'HOOK_HEADER' => Hook::exec('displayHeader'),447. 'HOOK_TOP' => Hook::exec('displayTop'),448. 'HOOK_LEFT_COLUMN' => ($this->display_column_left ? Hook::exec('displayLeftColumn') : ''),449. 'HOOK_RIGHT_COLUMN' => ($this->display_column_right ? Hook::exec('displayRightColumn', array('cart' => $this->context->cart)) : ''),450. ));451. }452. else FrontControllerCore->initContent - [line 37 - controllers/front/IndexController.php]31. * Assign template vars related to page content32. * @see FrontController::initContent()33. */34. public function initContent()35. {36. parent::initContent();37. $this->addJS(_THEME_JS_DIR_.'index.js');38.39. $this->context->smarty->assign(array('HOOK_HOME' => Hook::exec('displayHome'),40. 'HOOK_HOME_TAB' => Hook::exec('displayHomeTab'),41. 'HOOK_HOME_TAB_CONTENT' => Hook::exec('displayHomeTabContent') IndexControllerCore->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. else181. $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 373 - classes/Dispatcher.php]367. // Execute hook dispatcher368. if (isset($params_hook_action_dispatcher))369. Hook::exec('actionDispatcher', $params_hook_action_dispatcher);370.371. // Running controller372. $controller->run();373. }374. catch (PrestaShopException $e)375. {376. $e->displayMessage();377. } DispatcherCore->dispatch - [line 28 - index.php]22. * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)23. * International Registered Trademark & Property of PrestaShop SA24. */25.26. require(dirname(__FILE__).'/config/config.inc.php');27. Dispatcher::getInstance()->dispatch(); Link to comment Share on other sites More sharing options...
Eolia Posted October 14, 2014 Share Posted October 14, 2014 Oulà! avant de tout restaurer/supprimer il faut trouver d'où vient le problème De plus vous avez activé l'affichage des erreurs (mode dev) ce qui peut effectivement vous bloquer. Si vous voulez, envoyez-moi un accès bo/ftp en MP et je regarderai 1 Link to comment Share on other sites More sharing options...
Choupachou Posted October 14, 2014 Author Share Posted October 14, 2014 Mp envoyé Eolia, merci à vous ! Link to comment Share on other sites More sharing options...
shagshag Posted October 14, 2014 Share Posted October 14, 2014 Bonjour, A priori la restauration a fait des dégâts si des tables manquent :-( Dans ce cas précis il faut réinstaller le module blocktopmenu mais il y a surement plein d'autre problème. Ce genre de choses, installation de nouveau modules/thèmes devraient toujours se faire en premier sur une boutique de test. http://www.prestashop.com/blog/fr/serveur-de-test-pour-une-boutique-en-ligne/ Là c'est trop tard évidemment va falloir improviser. Bon courage Link to comment Share on other sites More sharing options...
Choupachou Posted October 14, 2014 Author Share Posted October 14, 2014 Oui, je pensais tout réinstaller de toute façon, le niveau d'avancement est moindre donc je ne perds pas grand chose.. Tout ça à cause du design de mon menu Horizontal pfff Link to comment Share on other sites More sharing options...
Eolia Posted October 14, 2014 Share Posted October 14, 2014 Merci de passer le topic en résolu 2 Link to comment Share on other sites More sharing options...
ShopyMind Posted October 14, 2014 Share Posted October 14, 2014 (edited) Bonjour, Nous venons de voir vos messages concernant l'erreur avec notre module. Nous avons développé le module en interne. Sachez qu'une mise à jour corrective est disponible sur le site Addons depuis le 11 août 2014. Il vous suffit simplement de mettre à jour le module en le téléchargeant sur notre site ou sur le site Addons. Je reste à votre disposition, Jean-Sébastien Couvert Edited October 14, 2014 by ShopyMind (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now