Καλημέρα
εδώ λοιπόν πιάσαμε "τον ποντικό"! Το id που μου επιστρέφει είναι το 4 (Default Layout).
Πως στο καλό το έκανα αυτό?!?!
Δεν το έκανες εσύ. Πρόκειται για το προεπιλεγμένο layout που εφαρμόζεται σε περίπτωση που δεν έχει ανατεθεί κάποιο άλλο layout σε ένα route ή σε μία σελίδα. Αυτό το layout ορίζεται ως default κατά την εγκατάσταση και μπορείς να το δεις αν πας στα Settings->[tab]Store->Default Layout.
Ο λόγος που τελικά το $layout_id εμφανίζει ως τιμή το default layout, είναι διότι για κάποιον λόγο στο controller του αρχείου θέσης δεν μπορούν να βρεθούν τα layouts που έχεις ορίσει εσύ.
Για τη σελίδα product που σε ενδιαφέρει, στο controller column_right.php αρχικά εξετάζεται αν υπάρχει κάποιο layout override
Κώδικας: Επιλογή όλων if ($route == 'product/product' && isset($this->request->get['product_id'])) {
$layout_id = $this->model_catalog_product->getProductLayoutId($this->request->get['product_id']);
}
Αν δεν βρει κάποιο layout override, ελέγχει το route της σελίδας και φορτώνει τα modules για αυτό το route
Κώδικας: Επιλογή όλων if (!$layout_id) {
$layout_id = $this->model_design_layout->getLayout($route);
}
Επειδή λοιπόν δεν βρήκε για κάποιον λόγο το route, εφάρμοσε το γενικό layout από τις ρυθμίσεις του καταστήματος.
Κώδικας: Επιλογή όλων if (!$layout_id) {
$layout_id = $this->config->get('config_layout_id');
}
- Έλεγξε αν κάποια παρέμβαση που έχεις κάνει τροποποιεί το route ή την class ModelDesignLayout στο catalog/model/design/layout.php. Επίσης απενεργοποίησε προσωρινά το .htaccess.
- Αν δεν βρεθεί το πρόβλημα, πόσταρε το περιεχόμενο της στήλης value του key "category_module" από το table oc_setting να δω τι έχει οριστεί για το Category module.
Αλεξάνδρα Γκόγκα - Software Developer @ People’s Code
OpenCart-Hellas.gr - Administrator & Founder
PeoplesCode.com - Επίσημος Αντιπρόσωπος OpenCart | Extensions - Φιλοξενία - Αναβάθμιση - Μεταφορά - Τεχνική Υποστήριξη OpenCart
Ελληνική μετάφραση & Επεκτάσεις OpenCart