Elxis CMS Forum
Ελληνικό Forum => Πρόσθετα => Topic started by: panos_vas on November 22, 2009, 22:05:20
-
Προσθέτοντας περιοχές στο IOS Reservations σκέφτηκα να χωρίσω της Ελλάδα σε Περιφέρειες (όπως είναι διοικητικά), αλλά αντιμετωπίζω ένα πρόβλημα.
Τα ξενοδοχεία δεν προσμετρούνται από τις υποπεριοχές (τοποθεσίες) στην κεντρική περιοχή.
Προορισμοί
Ανατ. Μακεδονία & Θράκη
0 Ξενοδοχεία
5 Τοποθεσίες
Υπάρχουν 2 καταχωρημένα ξενοδοχεία στην τοποθεσία Δράμα.
-
Αν έγραφε 5 ξενοδοχεία θα περίμενε κάποιος όταν ανοίξει την τοποθεσία "Ανατ. Μακεδονία & Θράκη" να δει 5 ξενοδοχεία, όμως τα ξενοδοχεία θα ήταν σε υπο-τοποθεσίες και δεν θα έβλεπε κανένα. Άρα θα ήταν λάθος αυτός ο τρόπος.
Όπως δουλεύει, νομίζω είναι πολύ σωστότερο.
Σου συνιστώ να μην φτιάξεις πάρα πολλά επίπεδα ώστε να μπορεί κάποιος με 2 κλικ το πολύ να βρει την τοποθεσία που θέλει.
-
Δεν θα συμφωνήσω μαζί σου
Πρέπει έξω να γράφει τα συνολικά ξενοδοχεία και από τις υποκατηγορίες, διαφορετικά ένας χρήστης γιατί να προχωρήσει σε αυτή την κατηγορία αν γράφει 0 Ξενοδοχεία ?
Ενώ αν γράφει έξω τον αριθμό των ξενοδοχείων στο δεύτερο επίπεδο θα τα δει
-
Άμεση απάντηση αλλά...
Θα ήθελα να είχα και μία απάντηση της μορφής:
"Αν έγραφε 5 ξενοδοχεία θα περίμενε κάποιος όταν ανοίξει την τοποθεσία "Ανατ. Μακεδονία & Θράκη" να δει 5 ξενοδοχεία, όμως τα ξενοδοχεία θα ήταν σε υπο-τοποθεσίες και δεν θα έβλεπε κανένα. Άρα θα ήταν λάθος αυτός ο τρόπος.
Όπως δουλεύει, νομίζω είναι πολύ σωστότερο."
Αν όμως εσύ επιθυμείς τα ξενοδοχεία να προσμετρούνται από τις υποπεριοχές (τοποθεσίες) στην κεντρική περιοχή τότε....
ΑΥΤΗ ΕΙΝΑΙ Η ΛΥΣΗ ή ΔΕΝ ΓΙΝΕΤΕ ΑΥΤΟ
Πάνος
-
Σου είπα πως δουλεύει αυτή τη στιγμή το IOS Reservations και πιο είναι το σκεπτικό πίσω από αυτόν τον τρόπο λειτουργίας. Με τον ίδιο τρόπο δουλεύουν όλα τα component που έχουν υποστήριξη πολλαπλών επιπέδων κατηγοριών. Αν θες να το αλλάξεις αυτό εννοείται ότι πρέπει να κάνεις edit τον κώδικα του component. Αν άλλαζε αλλιώς θα στο έλεγα. Τώρα να σου πω από εδώ τι να γράψεις και που, δεν γίνεται γιατί η συγκεκριμένη λειτουργία είναι δύσκολη και απαιτεί αρκετές αλλαγές και δύσκολο κώδικα. Θα πρέπει να σου γράψω ένα κατεβατό πολλών εντολών της μορφής: πήγαινε στη γραμμή τάδε, σβήσε αυτό, γράψε αυτό, στο αρχείο τάδε πρόσθεσε την συνάρτηση τάδε με περιεχόμενο τάδε, πήγαινε εκεί, κάτω από αυτό γράψε εκείνο, κλπ. Συνεπώς ή ξέρεις php και το αλλάζεις όπως θες ή δεν ξέρεις και το αφήνεις ως έχει.
Πάντως, ακόμα και αν πιστεύεις ότι είναι σωστότερος ο τρόπος λειτουρτγίας που λες, δεν σου συστίνω να το αλλάξεις γιατί:
Θα πρέπει για κάθε τοποθεσία να κάνεις ένα πρόσθετο query προς την βάση δεδομένων για να βρεις όλες τις "παιδικές" τοποθεσίες. Στην συνέχεια να μετρήσεις με άλλο query τα ξενοδοχεία που βρίσκονται σε όλες τις παιδικές αλλά και την γονική κατηγορία. Αυτός θα είναι ο αριθμός των ξενοδοχείων που θες για την πρώτη γονική τοποθεσία. Πρέπει να επαναλάβεις την διαδικασία για όλες τις άλλες γονικές τοποθεσίες. Αν έχεις 10 γονικές τοποθεσίες στην καλύτερη περίπτωση θα χρειαστούν 20 πρόσθετα query να τρέχουν σε κάθε κλικ που κάνουν οι επισκέπτες του site. Αν δεν το φτιάξεις και με σωστό τρόπο τα query μπορεί να είναι αρκετά περισσότερα, πχ 30, 40, κλπ. Η επιβάρυνση προς την βάση δεδομένων είναι πολύ μεγάλη και δεν δικαιολογείται για κάτι τόσο ασήμαντο σαν αυτό που θες. Αυτός είναι ένας από τους βασικούς λόγους που επέλεξα να μην λειτουργεί έτσι. Και δεν σου συστίνω να το κάνεις έτσι.
-
Όπως πάντα άμεσες οι απαντήσεις.
Ναι αυτή η απάντηση με ικανοποιεί. Γνωρίζω php (δεν είμαι άριστος, αλλα γνωρίζω). Όταν όμως ο κατασκευαστής του προγράμματος λέει "μην το πειράξεις" τότε δεν πρέπει να το πειράξω.
Ευχαριστώ για την απάντηση
Κάτι ακόμα ελπίζω πιο εύκολο.
Στην αρχική σελίδα οι προορισμοί είναι σε 3 columns ενώ όταν μπαίνεις στις περιοχές σε 2 columns. Μπορεί και στις περιοχές να εμφανίζονται οι υποπεριοχές σε 3 columns;
-
Αρχείο: components/com_reservations/includes/extend.html.php
Συνάρτηση: subLocations
από:
$totalHeight = ceil(count($sublocs)/2) * 70;
σε:
$totalHeight = ceil(count($sublocs)/3) * 70;
από:
$y = ($i % 2);
σε:
$y = ($i % 3);
αυτή η αλλαγή σε 2 σημεία.
από:
echo '<div style="width: 46%; float: '.$float.'; margin: 0; padding: 0;">'._LEND;
σε:
echo '<div style="width: 31%; float: '.$float.'; margin: 0; padding: 0;">'._LEND;
-
Ευχαριστώ πολύ. Μια μικρή προσθήκη για κάποιον άλλον που θέλει να το κάνει.
Θέλει αλλαγή και το
if ($y == 1) {
σε
if ($y == 2) {
Δούλεψε τέλεια
-
OK!