sinikos Δημοσ. 3 Δεκεμβρίου 2019 Δημοσ. 3 Δεκεμβρίου 2019 (επεξεργασμένο) Γεια χαρά στην παρέα. Θεωρώ οτί έχω φτάσει σε καλό επίπεδο σε ένα project που φτιάχνω. Απλά δεν έχω καταλάβει 2-3 πραγματάκια. *Ξέρω οτί σας έχω ζαλίσει τα ..... μερικών, άλλα επειδή δεν ξέρω πολλά αγγλικά, η βοήθεια που έχω λάβει από εδω μέσα είναι ανεκτίμητη. Τώρα δουλεύω σε MVC με codeigniter. α)1) Παλιά τράβαγα αν ήθελα κάποιες παραμέτρους με $_GET από το url. Στο mvc δεν ξέρω πως να το κάνω. Βασικά με μία παράμετρο ξέρω. πχ αν θέλω να εμφανίσω μια λίστα με τηλεφωνα και έχω την μέθοδο και την παράμετρο στο controller function mobiles($os = ""), και στο model if($os) {$this->db->where('os', $os)}. Οπότε αν το url ειναι site.gr/mobiles εμφανίζονται όλα τα κινητά. Αν είναι site.gr/mobiles/android τότε μου εμφανίζονται μόνο τα android. Μέχρι εδώ εντάξει. Θέλω να βάλω και άλλα φίλτρα όμως. Είδα κάποια tutorial για helper url, uri και segment. Το οποίο και καλά το segment(2) είναι το os. Μέχρι εδώ καλά. Δηλαδή σε ένα url site.gr/mobiles/android/fingerprint/4gb/ το segment(2) θα φέρει "android", το segment(3) θα φέρει "fingerprint" κλπ. Αν κάποιος όμως δεν επιλέξει λειτουργικό και το url είναι site.gr/mobiles/fingerprint/4gb/ τότε στο $os θα μου βάλει το "fingerprint", στα $features θα μου βάλει το 4gb κλπ. Δεν μπορώ να καταλάβω τι έχω καταλάβει λάθος. Και δεν ξέρω πως να το ψάξω. Υπάρχει τρόπος να έχω στο mvc url στυλ site.gr/mobiles/?os=android&features=fingerprint&ram=4gb κλπ. ωστε αν λείπει κάποιο, απλά να μην είναι isset. α)2) Αν τελικά γίνεται αυτό με το get, πως μπορώ να έχω πάνω από μια επιλογή σε μία παράμετρο. Αν δηλαδή στο features έχει και fingerprint και dual sim. β) Ο βασικός μου controller στέλνει στα view $data['title'] = "My new site"; $this->load->view('templates/header',$data); $this->load->view('pages/'.$page,$data); $this->load->view('templates/footer'); Απλά δεν μπορώ να κατάλάβω πως μπορώ να χρησιμοποιήσω κάτι που εμφανίζεται δυναμικά με foreach από την βάση και να το φορτώσω σαν title της σελίδας, αφού το title meta tag φορτώνεται στο header που φορτώνεται πριν το "σώμα" της σελίδας. Με απλή php έβαζα το <title><?php echo $title; ?></title> στο header και στην σελίδα, πριν κάνω include το header, δήλωνα την μεταβλητή. Εδώ όμως????? <?php $title= "Η νέα μου σελίδα"; ?> <?php include('header.php'); ?> σκέφτηκα να κάνω ένα foreach μέσα στο controller για να αντλήσω την πληροφορία που θέλω και να την βάλω στην $data['title'] πριν φορτωθεί το header, αλλά φαντάζομαι αυτό θα είναι έγκλημα ε? γ) Επειδή μερικές φορές κολλάει το site και πετάει error που με refresh φτιάχνει. Υπάρχει κάποιος τρόπος αν το πρόβλημα της ταχύτητας είναι θέμα σελίδας ή host? δ) Παρότι έχω βάλει σαν base_url το http://www.tosite.gr και έχω φτιάξει και το htaccess μου, αν γράψω χειροκίνητα στο url tosite.gr, τότε το url γίνεται χωρίς www και δεν δουλεύουν κάποια πράγματα. Υπάρχει τρόπος ΟΤΙ ΚΑΙ ΝΑ ΓΙΝΕΙ, ΟΤΙ ΚΑΙ ΝΑ ΓΡΑΨΕΙ ΚΑΠΟΙΟΣ ΣΤΟ URL να παίρνει αυτόματα το www? SOLVED Επεξ/σία 4 Δεκεμβρίου 2019 από sinikos
Επισκέπτης Δημοσ. 3 Δεκεμβρίου 2019 Δημοσ. 3 Δεκεμβρίου 2019 55 λεπτά πριν, sinikos είπε Παρότι έχω βάλει σαν base_url το http://www.tosite.gr και έχω φτιάξει και το htaccess μου, αν γράψω χειροκίνητα στο url tosite.gr, τότε το url γίνεται χωρίς www και δεν δουλεύουν κάποια πράγματα. Υπάρχει τρόπος ΟΤΙ ΚΑΙ ΝΑ ΓΙΝΕΙ, ΟΤΙ ΚΑΙ ΝΑ ΓΡΑΨΕΙ ΚΑΠΟΙΟΣ ΣΤΟ URL να παίρνει αυτόματα το www? γιατί δεν δοκιμάζεις με redirect? θα βρεις αρκετό υλικό στην τεκμηρίωση του apache.
kosnik Δημοσ. 4 Δεκεμβρίου 2019 Δημοσ. 4 Δεκεμβρίου 2019 (επεξεργασμένο) τι version CodeIgniter χρησιμοποιείς? Αμα θες να παιξεις με segments, και το πρόβλημα ειναι πως κάποια μπορεί να λείπουν, τότε φτιάξτα να ειναι στη μορφή π.χ. /ram,_4gb/os_android/etc. Στον controller παρε ολα τα segments και χερίσου τα με ένα explode sto '_' οπότε θα ξερεις τι φίλτρα έχεις (τύπος-τιμή). Αλλιώς όλες τις παραμέτρους με url get params ?os=android&.... Αν θες πάνω από μια τιμη για μία παράμετρο, ακολούθα παρόμοια τακτικη πχ .../os_android-ios/features_fingerprint-dualsim και κανε explode στο '_' (εχεις τύπο και τιμες) και μετα explode στο '-' για να παρεις τα values Επεξ/σία 4 Δεκεμβρίου 2019 από kosnik
sinikos Δημοσ. 4 Δεκεμβρίου 2019 Μέλος Δημοσ. 4 Δεκεμβρίου 2019 7 ώρες πριν, kosnik είπε τι version CodeIgniter χρησιμοποιείς? Αμα θες να παιξεις με segments, και το πρόβλημα ειναι πως κάποια μπορεί να λείπουν, τότε φτιάξτα να ειναι στη μορφή π.χ. /ram,_4gb/os_android/etc. Στον controller παρε ολα τα segments και χερίσου τα με ένα explode sto '_' οπότε θα ξερεις τι φίλτρα έχεις (τύπος-τιμή). Αλλιώς όλες τις παραμέτρους με url get params ?os=android&.... Αν θες πάνω από μια τιμη για μία παράμετρο, ακολούθα παρόμοια τακτικη πχ .../os_android-ios/features_fingerprint-dualsim και κανε explode στο '_' (εχεις τύπο και τιμες) και μετα explode στο '-' για να παρεις τα values Τι version θα την κοιταξω μολις παω σπιτι. Καταλαβα το σκεπτικο σου και μου φαινεται ωραια ιδεα για το πως θα εχω τυπο και τιμες. Αλλα ομως που θα ξερω μεχρι που θα φτανει το segment. Δεν πρεπει να τα δηλωσω? Μπορω να κανω κατι σαν while ωστε οσο βρισκει να τραβαει? δηλαδη αν ειναι το url /os_android/features_fingerprint/screen_5inches/sd_yes/constructor_samsung Θα βαλω ξερωγω segment(1), segment(2).......segment(5). Αν το url ομως τυχει να ειναι /os_android/features_fingerprint/ με τι θα σεταριστουν τα υπολοιπα? Επισης αν το url τυχει και ειναι /os_android/features_fingerprint/screen_5inches/sd_yes/constructor_samsung/mpla/mpla/mpla/mpla/mpla Που θα μπουν τα υπολοιπα μετα το 5ο segment; Υ.γ.1, μπορω να κανω ενα αρχικο explode στις καθετους για να παρω τα αρχικα σετ (τυπος,τιμη) των χαρακτηριστικων? Υ.γ.2 με τα url ?os=android κλπ, πως παιρνω την τιμη android στον controller; Καταρχας βαζω κατι σαν παραμετρο στην παρενθεση; function show_mobiles(?). Και μεσα στον controler πως αναθετω την τιμη σε μια μεταβλητη? Με τον κλασσικο τροπο $os = $_GET(‘os’); ? Νομιζω το εχω δοκιμασει και δεν δουλευε. Δεν ειμαι σιγουρος ομως, θα δοκιμασω το βραδυ.
kosnik Δημοσ. 4 Δεκεμβρίου 2019 Δημοσ. 4 Δεκεμβρίου 2019 4 ώρες πριν, sinikos είπε Αλλα ομως που θα ξερω μεχρι που θα φτανει το segment Γι αυτό, και για τα υπόλοιπα, αρχισε να κοιτας documentation. Ειναι ερωτήσεις που αν επίσης τις γκουγκλάρεις, θα βρείς σίγουρα απάντηση. Και πιο γρήγορα από οτι εδώ. Δες εδώ όλα τα διαθέσιμα functions σχετικα με segments. Απλά τσεκαρε το version σου. Τσεκαρε το total_segments(), segment_array() κάτι θα σου κάνει. Δυστυχώς, πρέπει να ζοριστείς με τα αγγλικά (το λέω τελείως καλοπροαίρετα), θα χτυπήσεις γρήγορα τοίχο αλλιώς.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα