jacek_s Posted December 23, 2016 Share Posted December 23, 2016 (edited) Zamierzam zrobić moduł bazując na innym: <?php class dsada extends blocktopmenu { public function __construct() { } };?> Jak wyłączę moduł źródłowy wywala mi: [PrestaShop] Fatal error in module file :C:\xampp\htdocs\dashboard\testy\prestashop\modules\blocktopmenu\blocktopmenu.php: Cannot redeclare class Blocktopmenu Jak mam prawidłowo dziedziczyć po tym module? Edited December 23, 2016 by jacek_s (see edit history) Link to comment Share on other sites More sharing options...
0 Krystian Podemski Posted December 23, 2016 Share Posted December 23, 2016 Tu masz przykład: https://gist.github.com/kpodemski/b16dedb53012e5fcd179d94539adeee3 Link to comment Share on other sites More sharing options...
0 jacek_s Posted December 23, 2016 Author Share Posted December 23, 2016 Racja... źle mi się wkleiło... ale po zastosowaniu do rady z twoim przykładem błąd jak był tak jest. Link to comment Share on other sites More sharing options...
0 Krystian Podemski Posted December 23, 2016 Share Posted December 23, 2016 Chyba jednak nie zastosowałeś się do tego co pokazałem, zwróć uwagę na to gdzie ten plik powinien być oraz na nazewnictwo. Link to comment Share on other sites More sharing options...
0 jacek_s Posted December 23, 2016 Author Share Posted December 23, 2016 No to zrobiłem: <?php if (!defined('_PS_VERSION_')) exit; class BlocktopmenuOverride extends Blocktopmenu { public function __construct() { $this->name = 'BlocktopmenuOverride'; } protected function generateCategoriesMenu($categories, $is_children = 0) { $html = ''; foreach ($categories as $key => $category) { if ($category['level_depth'] > 1) { $cat = new Category($category['id_category']); $link = Tools::HtmlEntitiesUTF8($cat->getLink()); } else { $link = $this->context->link->getPageLink('index'); } /* Whenever a category is not active we shouldnt display it to customer */ if ((bool)$category['active'] === false) { continue; } $html .= '<li'.(($this->page_name == 'category' && (int)Tools::getValue('id_category') == (int)$category['id_category']) ? ' class="sfHoverForce"' : '').'>'; $html .= '<a href="'.$link.'" title="'.$category['name'].'">'.$category['name'].'</a>'; if (isset($category['children']) && !empty($category['children'])) { $html .= '<ul>'; $html .= $this->generateCategoriesMenu($category['children'], 1); if ((int)$category['level_depth'] > 1 && !$is_children) { $files = scandir(_PS_CAT_IMG_DIR_); if (count(preg_grep('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $files)) > 0) { $html .= '<li class="category-thumbnail">'; foreach ($files as $file) { if (preg_match('/^'.$category['id_category'].'-([0-9])?_thumb.jpg/i', $file) === 1) { $html .= '<div><img src="'.$this->context->link->getMediaLink(_THEME_CAT_DIR_.$file) .'" alt="'.Tools::SafeOutput($category['name']).'" title="' .Tools::SafeOutput($category['name']).'" class="imgm" /></div>'; } } $html .= '</li>'; } } $html .= '</ul>'; } $html .= '</li>'; } return $html; } }; ?> w C:\xampp\htdocs\dashboard\testy\prestashop\override\modules\Blocktopmenu\Blocktopmenu.php i PrestaShop wogóle nie widzi modułu. Link to comment Share on other sites More sharing options...
0 Krystian Podemski Posted December 23, 2016 Share Posted December 23, 2016 No bo nadpisałeś konstruktor niepotrzebnie i nie zwróciłeś wartości klasy po której dziedziczysz, dlatego PrestaShop go nie widzi. Link to comment Share on other sites More sharing options...
0 jacek_s Posted December 23, 2016 Author Share Posted December 23, 2016 (edited) Konstruktor skasowany i jest po staremu. Edited December 23, 2016 by jacek_s (see edit history) Link to comment Share on other sites More sharing options...
0 jacek_s Posted December 27, 2016 Author Share Posted December 27, 2016 Wystarczyło pozbyć się class_index i zaskoczyło. Teraz muszę się uporać się kontrolerem z klasą category... Tam też jest też nie można nadpisywać konstruktora? Link to comment Share on other sites More sharing options...
Question
jacek_s
Zamierzam zrobić moduł bazując na innym:
Jak wyłączę moduł źródłowy wywala mi:
Jak mam prawidłowo dziedziczyć po tym module?
Edited by jacek_s (see edit history)Link to comment
Share on other sites
7 answers to this question
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