stleon Posted June 1, 2018 Share Posted June 1, 2018 Buenas tardes, HAce un buen rato he intentado actualizar mi prestahop 1.6.1.6 y en el backoffice me ha dado todo ok, pero cuando he intentado entrar en la web y en el backoffice me da error. Activando el bug de errores me da esto: Error fatal : el nivel de acceso a Link :: getBaseLink () debe ser público (como en la clase LinkCore) en /var/www/vhosts/miweb.com/httpdocs/override/classes/Link.php en la línea 0 ¿Cómo podría solucionarlo? No puedo entrar ni el Backoffice ni en la web. Graicas de antemano compañeros. Link to comment Share on other sites More sharing options...
nadie Posted June 1, 2018 Share Posted June 1, 2018 Tienes un error en este "override": /override/classes/Link.php Override proveniente de algún módulo que tuvieras instalado. Renombrarlo momentáneamente "link.php_old" y mira ver de donde viene. ¿Es posible que antes de actualizar tuvieras algún módulo instalado como el CleanURL para ocultar el ID de las urls amigables? Link to comment Share on other sites More sharing options...
stleon Posted June 1, 2018 Author Share Posted June 1, 2018 32 minutes ago, nadie said: Tienes un error en este "override": /override/classes/Link.php Override proveniente de algún módulo que tuvieras instalado. Renombrarlo momentáneamente "link.php_old" y mira ver de donde viene. ¿Es posible que antes de actualizar tuvieras algún módulo instalado como el CleanURL para ocultar el ID de las urls amigables? Buenas tardes Nadie, Efectivamente, tengo un módulo para limpiar las URLS GoodBid - Elimina el ID de la URL v3.0.11 - por AlabazWeb Pro pero no sé si es este módulo el que me da el error, Que me aconsejas? Como lo puedo solucionar? Gracias de antemano!! Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted June 1, 2018 Share Posted June 1, 2018 (edited) Me cuelo, que contenido tienes en el fichero: /override/classes/Link.php ? Posiblemente sea un override del modulo que dices, probaria desactivar el modulo o desinstalarlo a ver si tienes suerte y te deja acceder. Edited June 1, 2018 by Sergio Ruiz (see edit history) Link to comment Share on other sites More sharing options...
stleon Posted June 1, 2018 Author Share Posted June 1, 2018 4 minutes ago, Sergio Ruiz said: Me cuelo, que contenido tienes en el fichero: /override/classes/Link.php ? Posiblemente sea un override del modulo que dices, probaria desactivar el modulo o desinstalarlo a ver si tienes suerte y te deja acceder. Buenas tardes SErgio, Te pego lo que tiene mi archivo Link.php Graicas por tu atención también!! <?php class Link extends LinkCore { protected function getLangLink($id_lang = null, Context $context = null, $id_shop = null) { if (Configuration::get("GB_RM_LANG_URL")) return ''; return parent::getLangLink($id_lang, $context, $id_shop); } /** * Create a link to a category * * @param mixed $category Category object (can be an ID category, but deprecated) * @param string $alias * @param int $id_lang * @param string $selected_filters Url parameter to autocheck filters of the module blocklayered * @return string */ public function getCategoryLink($category, $alias = null, $id_lang = null, $selected_filters = null, $id_shop = null, $relative_protocol = false) { if (!$id_lang) { $id_lang = Context::getContext()->language->id; } $url = $this->getBaseLink($id_shop, null, $relative_protocol).$this->getLangLink($id_lang, null, $id_shop); if (!is_object($category)) { $category = new Category($category, $id_lang); } // Set available keywords $params = array(); $params['id'] = $category->id; $params['rewrite'] = (!$alias) ? $category->link_rewrite : $alias; $params['meta_keywords'] = Tools::str2url($category->getFieldByLang('meta_keywords')); $params['meta_title'] = Tools::str2url($category->getFieldByLang('meta_title')); $dispatcher = Dispatcher::getInstance(); if ($dispatcher->hasKeyword('category_rule', $id_lang, 'categories', $id_shop)) { /*$params['category'] = $category; $cats = array(); foreach ($category->getParents($id_lang) as $cat) { if (!in_array($cat['id_category'], Link::$category_disable_rewrite)) { //remove root and home category from the URL $cats[] = $cat['link_rewrite']; } } $params['categories'] = implode('/', $cats);*/ $cats = array(); foreach ($category->getParentsCategories() as $cat) if (!in_array($cat['id_category'], array(1, 2, $category->id)))//remove root, home and current category from the URL $cats[] = $cat['link_rewrite']; $params['categories'] = implode('/', array_reverse($cats)); } // Selected filters is used by the module blocklayered $selected_filters = is_null($selected_filters) ? '' : $selected_filters; if (empty($selected_filters)) { $rule = 'category_rule'; } else { $rule = 'layered_rule'; $params['selected_filters'] = $selected_filters; } return $url.Dispatcher::getInstance()->createUrl($rule, $id_lang, $params, $this->allow, '', $id_shop); } protected function getBaseLink($id_shop = null, $ssl = null, $relative_protocol = false) { static $force_ssl = null; if ($ssl === null) { if ($force_ssl === null) { $force_ssl = (Configuration::get('PS_SSL_ENABLED') && Configuration::get('PS_SSL_ENABLED_EVERYWHERE')); } $ssl = $force_ssl; } if (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') && $id_shop !== null) { $shop = new Shop($id_shop); } else { $shop = Context::getContext()->shop; } if ($relative_protocol) { $base = '//'.($ssl && $this->ssl_enable ? $shop->domain_ssl : $shop->domain); } else { $base = (($ssl && $this->ssl_enable) ? 'https://'.$shop->domain_ssl : 'http://'.$shop->domain); } return $base.$shop->getBaseURI(); } } Link to comment Share on other sites More sharing options...
Sergio Ruiz Posted June 1, 2018 Share Posted June 1, 2018 (edited) Entra en la carpeta del modulo, un momento, es decir: /modules/nombre_modules/ y dime si dentro de la carpeta del modulo tienes otra carpeta llamada override con un fichero que tiene el mismo contenido al que me has pasado. De ese modo, sabemos si ese override proviene u no de ese modulo Edited June 1, 2018 by Sergio Ruiz (see edit history) Link to comment Share on other sites More sharing options...
stleon Posted June 1, 2018 Author Share Posted June 1, 2018 3 minutes ago, Sergio Ruiz said: Entra en la carpeta del modulo, un momento, es decir: /modules/nombre_modules/ y dime si dentro de la carpeta del modulo tienes otra carpeta llamada override con un fichero que tiene el mismo contenido al que me has pasado. De ese modo, sabemos si ese override proviene u no de ese modulo Efectivamente, dentro del módulo he encontrado esta carpeta: modules/goodbid/_override/classes/Link.php con el siguiente contenido: <?php class Link extends LinkCore { protected function getLangLink($id_lang = null, Context $context = null, $id_shop = null) { if (Configuration::get("GB_RM_LANG_URL")) return ''; return parent::getLangLink($id_lang, $context, $id_shop); } /** * Create a link to a category * * @param mixed $category Category object (can be an ID category, but deprecated) * @param string $alias * @param int $id_lang * @param string $selected_filters Url parameter to autocheck filters of the module blocklayered * @return string */ public function getCategoryLink($category, $alias = null, $id_lang = null, $selected_filters = null, $id_shop = null, $relative_protocol = false) { if (!$id_lang) { $id_lang = Context::getContext()->language->id; } $url = $this->getBaseLink($id_shop, null, $relative_protocol).$this->getLangLink($id_lang, null, $id_shop); if (!is_object($category)) { $category = new Category($category, $id_lang); } // Set available keywords $params = array(); $params['id'] = $category->id; $params['rewrite'] = (!$alias) ? $category->link_rewrite : $alias; $params['meta_keywords'] = Tools::str2url($category->getFieldByLang('meta_keywords')); $params['meta_title'] = Tools::str2url($category->getFieldByLang('meta_title')); $dispatcher = Dispatcher::getInstance(); if ($dispatcher->hasKeyword('category_rule', $id_lang, 'categories', $id_shop)) { /*$params['category'] = $category; $cats = array(); foreach ($category->getParents($id_lang) as $cat) { if (!in_array($cat['id_category'], Link::$category_disable_rewrite)) { //remove root and home category from the URL $cats[] = $cat['link_rewrite']; } } $params['categories'] = implode('/', $cats);*/ $cats = array(); foreach ($category->getParentsCategories() as $cat) if (!in_array($cat['id_category'], array(1, 2, $category->id)))//remove root, home and current category from the URL $cats[] = $cat['link_rewrite']; $params['categories'] = implode('/', array_reverse($cats)); } // Selected filters is used by the module blocklayered $selected_filters = is_null($selected_filters) ? '' : $selected_filters; if (empty($selected_filters)) { $rule = 'category_rule'; } else { $rule = 'layered_rule'; $params['selected_filters'] = $selected_filters; } return $url.Dispatcher::getInstance()->createUrl($rule, $id_lang, $params, $this->allow, '', $id_shop); } protected function getBaseLink($id_shop = null, $ssl = null, $relative_protocol = false) { static $force_ssl = null; if ($ssl === null) { if ($force_ssl === null) { $force_ssl = (Configuration::get('PS_SSL_ENABLED') && Configuration::get('PS_SSL_ENABLED_EVERYWHERE')); } $ssl = $force_ssl; } if (Configuration::get('PS_MULTISHOP_FEATURE_ACTIVE') && $id_shop !== null) { $shop = new Shop($id_shop); } else { $shop = Context::getContext()->shop; } if ($relative_protocol) { $base = '//'.($ssl && $this->ssl_enable ? $shop->domain_ssl : $shop->domain); } else { $base = (($ssl && $this->ssl_enable) ? 'https://'.$shop->domain_ssl : 'http://'.$shop->domain); } return $base.$shop->getBaseURI(); } } Gracias nuevamente!!! Link to comment Share on other sites More sharing options...
nadie Posted June 1, 2018 Share Posted June 1, 2018 (edited) Desinstala el módulo que comentas de AlabazWeb, ya que el override parece provenir por lo que estoy leyendo del mismo. No se de que versión a que versión has actualizado de Prestashop, pero el override no parece funcionar correctamente, por lo que: 1º Desinstala el módulo 2º Verifica que se han eliminado los overrides al desinstalar el modulo. El módulo te instala varias overrides, normalmente al desinstalarlo se suelen eliminar, pero nunca esta de mal, revisar. 3º Contacta con Alabaz Web que parece que es la empresa a la que le has comprado el módulo, comentales el problema y que te lo miren. El error dice -> la función " function getBaseLink" (originalmente) viene como publica (public), no como "protected". Puedes probar cambiar: protected function getBaseLink($id_shop = null, $ssl = null, $relative_protocol = false) por public function getBaseLink($id_shop = null, $ssl = null, $relative_protocol = false) Pero supongo que el modulo al no estar actualizado tendrá algún problemilla más, lo mejor es que contactes con alabaz Edited June 1, 2018 by nadie (see edit history) Link to comment Share on other sites More sharing options...
stleon Posted June 1, 2018 Author Share Posted June 1, 2018 2 minutes ago, nadie said: Desinstala el módulo que comentas de AlabazWeb, ya que el override parece provenir por lo que estoy leyendo del mismo. No se de que versión a que versión has actualizado de Prestashop, pero el override no parece funcionar correctamente, por lo que: 1º Desinstala el módulo 2º Verifica que se han eliminado los overrides al desinstalar el modulo. El módulo te instala varias overrides, normalmente al desinstalarlo se suelen eliminar, pero nunca esta de mal, revisar. 3º Contacta con Alabaz Web que parece que es la empresa a la que le has comprado el módulo, comentales el problema y que te lo miren. El error dice -> la función " function getBaseLink" (originalmente) viene como publica (public), no como "protected". Puedes probar cambiar: protected function getBaseLink($id_shop = null, $ssl = null, $relative_protocol = false) por public function getBaseLink($id_shop = null, $ssl = null, $relative_protocol = false) Pero supongo que el modulo al no estar actualizado tendrá algún problemilla más, lo mejor es que contactes con alabaz Gracias NAdie!! He tenido que reinstalar por FTP todos los archivos porqe la web lleva caía desde las 13:00 horas y son muchas horas sin estar online. He tomado nota de todo para comentarlo a Alabazweb, a ver si encuentran solución. Un millón de gracias y no dejo el tiquet del todo cerrado hasta que no me contesten y encontremos solución, por si a algún compañero le ocurriese lo mismo teniendo el mismo módulo. Gracias Nadie y Sergio Ruiz!! 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