Jump to content
thirty bees forum

Gofenice

Members
  • Posts

    8
  • Joined

  • Last visited

Gofenice's Achievements

Newbie

Newbie (1/14)

0

Reputation

  1. @slick_303 could you please guide me upgrading manually, i know replace the controllers and classes folder, what about the db structure changes if any ? Thanks,
  2. @slick_303 the message comes once the module is uploaded,!!
  3. @slick_303 yes loads the module page after removing the tbupdater module folder
  4. @slick_303 but i want to update to latest TB, thanks for your suggestion.
  5. Im getting 'Invalid classname.' error message in admin modules page after installing the tbupdater module. Didi anyone faced the same and any suggestion to fix this? Thanks,
  6. The hreflang & canonical URL features in the thirtybees core is a good feature, we were using some modules when were in prestashop. After migration we found its part of core and we dont need any module for canonical URLs / hreflang URLs. But found some pages have wrong URLs like cms pages and we found that the correct URLs are only generated for Product, Category, Manufacturer & Supplier pages. We have fixed the issue by overriding override/classes/controller/FrontController.php ``` <?php class FrontController extends FrontControllerCore { /** * Generates html for additional seo tags. * * @return string html code for the new tags * * @since 1.0.0 * * @version 1.0.0 Initial version */ public function getSeoFields() { $content = ''; $languages = Language::getLanguages(); $default_lang = Configuration::get('PS_LANG_DEFAULT'); switch ($this->php_self) { case 'product': // product page $id_product = (int) Tools::getValue('id_product'); $canonical = $this->context->link->getProductLink($id_product); $hreflang = $this->getHrefLang('product', $id_product, $languages, $default_lang); break; case 'category': $id_category = (int) Tools::getValue('id_category'); $content .= $this->getRelPrevNext('category', $id_category); $canonical = $this->context->link->getCategoryLink((int) $id_category); $hreflang = $this->getHrefLang('category', $id_category, $languages, $default_lang); break; case 'manufacturer': $id_manufacturer = (int) Tools::getValue('id_manufacturer'); $content .= $this->getRelPrevNext('manufacturer', $id_manufacturer); $hreflang = $this->getHrefLang('manufacturer', $id_manufacturer, $languages, $default_lang); if (!$id_manufacturer) { $canonical = $this->context->link->getPageLink('manufacturer'); } else { $canonical = $this->context->link->getManufacturerLink($id_manufacturer); } break; case 'supplier': $id_supplier = (int) Tools::getValue('id_supplier'); $content .= $this->getRelPrevNext('supplier', $id_supplier); $hreflang = $this->getHrefLang('supplier', $id_supplier, $languages, $default_lang); if (!Tools::getValue('id_supplier')) { $canonical = $this->context->link->getPageLink('supplier'); } else { $canonical = $this->context->link->getSupplierLink((int) Tools::getValue('id_supplier')); } break; case 'cms': $id_cms = (int) Tools::getValue('id_cms'); $hreflang = $this->getHrefLang('cms', $id_cms, $languages, $default_lang); if (!Tools::getValue('id_cms')) { $canonical = $this->context->link->getPageLink('cms'); } else { $canonical = $this->context->link->getCMSLink((int) Tools::getValue('id_cms')); } break; default: $canonical = $this->context->link->getPageLink($this->php_self); $hreflang = $this->getHrefLang($this->php_self, 0, $languages, $default_lang); break; } // build new content $content .= '<link rel="canonical" href="'.$canonical.'">'."\n"; if ($hreflang) { foreach ($hreflang as $lang) { $content .= "$lang\n"; } } return $content; } /** * creates hrefLang links for various entities. * * @param string $entity name of the object/page to get the link for * @param int $idItem eventual id of the object (if any) * @param array $languages list of languages * @param int $idLangDefault id of the default language * * @return string html of the hreflang tags * * @since 1.0.0 * * @version 1.0.0 Initial version */ public function getHrefLang($entity, $idItem, $languages, $idLangDefault) { foreach ($languages as $lang) { switch ($entity) { case 'product': $lnk = $this->context->link->getProductLink((int) $idItem, null, null, null, $lang['id_lang']); break; case 'category': $lnk = $this->context->link->getCategoryLink((int) $idItem, null, $lang['id_lang']); break; case 'manufacturer': if (!$idItem) { $lnk = $this->context->link->getPageLink('manufacturer', null, $lang['id_lang']); } else { $lnk = $this->context->link->getManufacturerLink((int) $idItem, null, $lang['id_lang']); } break; case 'supplier': if (!$idItem) { $lnk = $this->context->link->getPageLink('supplier', null, $lang['id_lang']); } else { $lnk = $this->context->link->getSupplierLink((int) $idItem, null, $lang['id_lang']); } break; case 'cms': if (!$idItem) { $lnk = $this->context->link->getPageLink('cms', null, $lang['id_lang']); } else { $lnk = $this->context->link->getCMSLink((int) $idItem, null, null, $lang['id_lang']); } break; default: $lnk = $this->context->link->getPageLink($entity, null, $lang['id_lang']); break; } // append page number if ($p = Tools::getValue('p')) { $lnk .= "?p=$p"; } $links[] = '<link rel="alternate" href="'.$lnk.'" hreflang="'.$lang['iso_code'].'">'; if ($lang['id_lang'] == $idLangDefault) { $links[] = '<link rel="alternate" href="'.$lnk.'" hreflang="x-default">'; } } return $links; } } ``` Please note that we have added only the CMS page links, please suggest or modify the missing page's codes here and please consider to fix this in the next releases. Thanks,
×
×
  • Create New...