Site-View Posted February 26, 2019 Share Posted February 26, 2019 (edited) Καλησπέρα στην ομάδα Ήθελα να ρωτήσω εάν έχει κάποιος κάποια ιδέα. Θέλει ο πελάτης όταν κάποιος κάνει εγγραφή, όπως και να τα γράφει , όλα τα στοιχεία του να περνάνε στην βάση όλα κεφάλαια. Δεν θέλει να τα βλέπει απλά κεφαλαία, που άπλα πειράζεις το css , θέλει να αποθηκευονται κεφαλαία, ετσι ώστε σε όλα να βγαίνουν ετσι,τιμολόγια,εμαιλ κτλ. πείραξα το Address.php μέσα στο /classes/ στην γραμμή 169 και την έκανα public function add($autodate = true, $null_values = false) { if (!parent::add($autodate, $null_values)) { return false; } // Capitalize the first name $this->firstname = Tools::strtoupper($this->firstname); // Capitalize the first name $this->lastname = Tools::strtoupper($this->lastname); // Capitalize the address fields $this->address1 = Tools::strtoupper($this->address1); $this->address2 = Tools::strtoupper($this->address2); if (Validate::isUnsignedId($this->id_customer)) { Customer::resetAddressCache($this->id_customer, $this->id); } return true; } public function update($null_values = false) { // Empty related caches if (isset(self::$_idCountries[$this->id])) { unset(self::$_idCountries[$this->id]); } if (isset(self::$_idZones[$this->id])) { unset(self::$_idZones[$this->id]); } // Capitalize the first name $this->firstname = Tools::strtoupper($this->firstname); // Capitalize the first name $this->lastname = Tools::strtoupper($this->lastname); // Capitalize the address fields $this->address1 = Tools::strtoupper($this->address1); $this->address2 = Tools::strtoupper($this->address2); if (Validate::isUnsignedId($this->id_customer)) { Customer::resetAddressCache($this->id_customer, $this->id); } return parent::update($null_values); } Άλλα δεν είχε κάποιο αποτέλεσμα. Όποιος έχει κάποια ιδέα ,ευπρόσδεκτη. Edited March 4, 2019 by Site-View (see edit history) Link to comment Share on other sites More sharing options...
Site-View Posted February 27, 2019 Author Share Posted February 27, 2019 Αλλάζοντας στο controllers/front/AuhController.php στη γραμμή 412 και βάζοντας αυτό : $_POST['lastname'] = strtoupper(Tools::getValue('customer_lastname', $lastnameAddress)); $_POST['firstname'] = strtoupper(Tools::getValue('customer_firstname', $firstnameAddress)); Παίζει όταν κάνεις εγγραφή με λατινικούς χαρακτήρες, αλλά δεν δουλεύει στα Ελληνικά. Link to comment Share on other sites More sharing options...
sanctusmob Posted February 27, 2019 Share Posted February 27, 2019 (edited) Καταρχήν είναι μεγάλο λάθος να αποθηκέψεις τα δεδομένα αλλάζοντας τα. Όπως και να τα έχεις αποθηκευμένα μπορείς εύκολα να τα αλλάξεις σε upper ή σε lower ή capitalize, αλλά να τα ξανακάνεις όπως ήταν με τόνους δεν γίνετε. (αναλόγως την υλοποίηση του upper ή του lower μπορείς να αφαιρεί τους τόνους) Θα πρέπει εκεί που κόβετε το τιμολόγιο να τα κάνει το upper ή όποια τροποποίηση θέλει καθώς είναι μόνο για το τιμολόγιο. Αλλάζοντας τα δεδομένα στην βάση συνεπάγεται πως αυτά τα δεδομένα θα γίνονται χρήση έτσι παντού π.χ. στα email. Παρόλα αυτά... Εγώ θα κοιτούσα να το κάνω πάνω στο query που κάνει το save στην βάση με upper() . Μπορείς να κάνεις και δοκιμές για να δεις το αποτέλεσμα σε διάφορες γλώσσες - τρόπους γραφής με select upper("This is a test") ή select upper("Κάνε μία δοκιμή") για να δεις πως συμπεριφέρεται με τους τόνους. Για τι έκδοση prestashop μιλάμε? Υ.Γ. Άλλο το capitalize άλλο το upper Υ.Γ.2 Όταν κάνεις αλλαγές κάνεις clear cache ή έχεις disable την cache? Edited February 27, 2019 by sanctusmob (see edit history) Link to comment Share on other sites More sharing options...
Site-View Posted February 27, 2019 Author Share Posted February 27, 2019 (edited) Στα υπάρχων δεδομένα τα έχω κάνει όλα με upper ,άλλα σε νέους πελάτες θα πρέπει να τρέχει στη βάση κάθε τόσο και τα αλλάζει και δεν θέλουμε κάτι τέτοιο. Κάποιες φόρες έχει λογική,γιατί ο κάθε πελάτης κάνει ότι του κατεβεί,όποτε προσπαθείς με κάποιο τρόπο να των κλειδώσεις και να το κάνει όπως το θέλεις. Είναι όπως στης αεροπορικές εταιρίες,που ότι και να γράψεις το βγάζει κεφαλαία, σαρεσει δε σαρεσει, και έχει λογική ,ειδικά σε κάποιες γλώσσες,όποτε το κάνεις για όλους. Όταν γράφει ο πελάτης το έχω κάνει να βγαίνει κατευθείαν κεφάλαια ,στο authentication.tpl βάζοντας style="text-transform: uppercase;",αλλά δεν το σώνει στη βάση. Πειράζοντας το AuhController.php ,γράφει στη βάση το όνομα και το επώνυμο στα λατινικά και δεν μου το παίρνει στα ελληνικά. Έκδοση 1.6.1.17 *Έπαιξε και στα ελληνικά ,ήθελε Tools::strtoupper όχι σκέτο strtoupper τώρα μένει να πειράξω για διεύθυνση, πόλη, δραστηριοτητα, ΔΟΥ κτλ. Edited February 27, 2019 by Site-View (see edit history) Link to comment Share on other sites More sharing options...
Site-View Posted February 28, 2019 Author Share Posted February 28, 2019 (edited) Έχω κολλήσει κάπου. Όταν ένας πελάτης κάνει εγγραφή,περνάει ονοματεπωνυμο ΚΕΦΑΛΑΙΑ, αλλά δεν περνάει διεύθυνση ,πόλη,ΔΟΥ και δραστηριοτητα στα κεφαλαία. Εαν μετά την εγγραφή κάνει απλά ενημέρωση στην διεύθυνση ,τότε περνιούνται στα κεφαλαία, άρα το Addresscontroller.php είναι οκ. Εαν είναι απλός πελάτης και πάει να κάνει ενημέρωση με Εταιρία, ΔΟΥ, Δραστηριοτητα ή νέα διεύθυνσή, τότε περνάει κανονικά τα κεφαλαία, άρα το identitycontroller.php είναι οκ. Ξέρετε που κάνει import στην βάση ,σε αρχική καταχώριση την διεύθυνση ,πόλη ,ape ,siret? στο AuthController.php δεν είναι. Edited February 28, 2019 by Site-View (see edit history) Link to comment Share on other sites More sharing options...
zygos29 Posted March 1, 2019 Share Posted March 1, 2019 (edited) Γιατί δεν κάνεις ένα script στο template να τα κάνεις από εκεί κεφαλαία ? Edited March 1, 2019 by zygos29 (see edit history) Link to comment Share on other sites More sharing options...
Site-View Posted March 1, 2019 Author Share Posted March 1, 2019 Θέλω να το βρω και για άλλα project, με αλλά template, εξάλλου αυτό παίζει εάν θες το πρώτο γράμμα κεφάλαιο η όλα έχει πολλές εφαρμογές. Link to comment Share on other sites More sharing options...
zygos29 Posted March 2, 2019 Share Posted March 2, 2019 Δοκίμασε αυτό στο Address.php public function add($autodate = true, $null_values = false) { // Capitalize the first name $this->firstname = grstrtoupper($this->firstname); $this->lastname = grstrtoupper($this->lastname); $this->address1 = grstrtoupper($this->address1); $this->address2 = grstrtoupper($this->address2); $this->city = grstrtoupper($this->city); if (!parent::add($autodate, $null_values)) { return false; } if (Validate::isUnsignedId($this->id_customer)) { Customer::resetAddressCache($this->id_customer, $this->id); } return true; } -------------------------------------------- και πρόσθεσε αυτό το function function grstrtoupper($string) { $latin_check = '/[\x{0030}-\x{007f}]/u'; if (preg_match($latin_check, $string)) { $string = strtoupper($string); } $letters = array('α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 'ξ', 'ο', 'π', 'ρ', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω'); $letters_accent = array('ά', 'έ', 'ή', 'ί', 'ό', 'ύ', 'ώ'); $letters_upper_accent = array('Ά', 'Έ', 'Ή', 'Ί', 'Ό', 'Ύ', 'Ώ'); $letters_upper_solvents = array('ϊ', 'ϋ'); $letters_other = array('ς'); $letters_to_uppercase = array('Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω'); $letters_accent_to_uppercase = array('Α', 'Ε', 'Η', 'Ι', 'Ο', 'Υ', 'Ω'); $letters_upper_accent_to_uppercase = array('Α', 'Ε', 'Η', 'Ι', 'Ο', 'Υ', 'Ω'); $letters_upper_solvents_to_uppercase = array('Ι', 'Υ'); $letters_other_to_uppercase = array('Σ'); $lowercase = array_merge($letters, $letters_accent, $letters_upper_accent, $letters_upper_solvents, $letters_other); $uppercase = array_merge($letters_to_uppercase, $letters_accent_to_uppercase, $letters_upper_accent_to_uppercase, $letters_upper_solvents_to_uppercase, $letters_other_to_uppercase); $uppecase_string = str_replace($lowercase, $uppercase, $string); return $uppecase_string; } Link to comment Share on other sites More sharing options...
Site-View Posted March 2, 2019 Author Share Posted March 2, 2019 Καλησπέρα, Καταρχάς σε ευχαριστώ που απασχολήθηκες. Δεν παίζει χτυπάει . PHP Parse error: syntax error, unexpected ' ' (T_STRING), expecting ';' or '{' in /home/xxxxxxx/public_html/classes/Address.php on line 169 H γραμμή 169 είναι η $this->firstname = grstrtoupper($this->firstname);$this->lastname = grstrtoupper($this->lastname);$this->address1 = grstrtoupper($this->address1);$this->address2 = grstrtoupper($this->address2);$this->city = grstrtoupper($this->city); Link to comment Share on other sites More sharing options...
zygos29 Posted March 2, 2019 Share Posted March 2, 2019 Sorry ήταν για presta 1.7. Δοκίμασε το συνημμένο αρχείο Address.php Link to comment Share on other sites More sharing options...
Site-View Posted March 2, 2019 Author Share Posted March 2, 2019 Σε ευχαριστώ το βρήκα. Έπαιξε με αυτό : public function add($autodate = true, $null_values = false) { // Capitalize the first name $this->address1 = Tools::strtoupper($this->address1); $this->address2 = Tools::strtoupper($this->address2); $this->city = Tools::strtoupper($this->city); $this->company = Tools::strtoupper($this->company); if (!parent::add($autodate, $null_values)) { return false; } if (Validate::isUnsignedId($this->id_customer)) { Customer::resetAddressCache($this->id_customer, $this->id); } return true; } και χωρίς την function Link to comment Share on other sites More sharing options...
Site-View Posted March 2, 2019 Author Share Posted March 2, 2019 Τώρα το μόνο που δεν περνάει είναι το εταιρία,ape,siret στον πελάτη. Εταιρία στην διεύθυνση την περνάει κανονικά κεφάλαια. Είναι ενεργοποιημενο το B2B. Link to comment Share on other sites More sharing options...
Site-View Posted March 2, 2019 Author Share Posted March 2, 2019 (edited) Έπαιξε και αυτό με το παρακάτω κωδικά στο AuthController.php // Preparing customer $customer = new Customer(); $lastnameAddress = Tools::getValue('lastname'); $firstnameAddress = Tools::getValue('firstname'); $firstcompany = Tools::getValue('company'); $firstsiret = Tools::getValue('siret'); $firstape = Tools::getValue('ape'); $_POST['lastname'] = Tools::strtoupper(Tools::getValue('customer_lastname', $lastnameAddress)); $_POST['firstname'] = Tools::strtoupper(Tools::getValue('customer_firstname', $firstnameAddress)); $_POST['company'] = Tools::strtoupper(Tools::getValue('customer_company', $firstcompany)); $_POST['siret'] = Tools::strtoupper(Tools::getValue('customer_siret', $firstsiret)); $_POST['ape'] = Tools::strtoupper(Tools::getValue('customer_ape', $firstape)); $addresses_types = array('address'); if (!Configuration::get('PS_ORDER_PROCESS_TYPE') && Configuration::get('PS_GUEST_CHECKOUT_ENABLED') && Tools::getValue('invoice_address')) { $addresses_types[] = 'address_invoice'; } Θα τα μαζέψω όλα μαζί και θα το γράψω αναλυτικά το θέμα, μήπως το χρειαστεί και κάποιος άλλος. Edited March 2, 2019 by Site-View (see edit history) 2 Link to comment Share on other sites More sharing options...
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