Jump to content

Ελληνικά και Friendly URL


nikolaosp

Recommended Posts

Καλησπέρα σε όλους,

 

Ψάχνω εδώ και μέρες τρόπο για να μπορέσω να κάνω τα friendly urls να δουλέψουν στο site μου.

 

Καταρχάς μιλάμε για Prestashop 1.5.6.2 σε server με mod_rewrite και Site που έχει μόνο ελληνική γλώσσα και γύρω στα 12000 προϊόντα.

 

 Έχω ενεργοποιήσει και το friendly urls αλλά και το accented urls και το μόνο που κάνει είναι να αντικαθιστά τους ελληνικούς χαρακτήρες με κενό διάστημα.  Αν κάνω εγώ το friendly url μέσα από το BO μου το δείχνει κανονικά και με το νόμο.

 

Έχει κανείς κάποια ιδέα πως μπορώ να το κάνω να δουλέψει;

 

Ευχαριστώ πολύ,

 

 

Νίκος

Link to comment
Share on other sites

Τι εννοείς;

 

Αν περάσω το friendly url μόνος μου μέσα στο προϊόν ή στην κατηγορία τότε όλα καλά. Το autogeneration είναι που δεν δουλεύει. Και σε 120000 προϊόντα δεν γίνεται να τα περάσω με το χέρι.

 

Δηλαδή, το πρόβλημα μου είναι στην αυτόματη δημιουργία του και όχι όταν τα περνάω χειροκίνητα. Αυτό που είδα μέσα στα αρχεία του Κώδικα είναι πως η function που κάνει το rewrite λέει, αν το πήρα σωστά χαμπάρι, ο,τι δεν είναι λατινικος χαρακτήρας,νούμερο ή / μα μετατρέπεται σε κενό διάστημα και το κενό μετά να γίνεται truncate.

 

Εσύ στο site σου, τα έβαλες με το χέρι τα friendly υrls ;

Link to comment
Share on other sites

Ναι εγώ τα περνάω ένα - ένα τα προϊόντα και αυτόματα μου περνάει και τα ελληνικά friendly url και σε αυτή την περίπτωση μπορώ να επέμβω και χειροκίνητα να το αλλάξω αν θέλω.

 

εσύ από ότι καταλαβαίνω έχεις 120000 προϊόντα που δεν τα έχεις βάλει ένα - ένα αλλά κατά κάποιο τρόπο όλα μαζί και θα ήθελες αυτόματα να περάσει και τα ελληνικά friendly url

Αυτό δεν το έχω ξανασυναντήσει

Link to comment
Share on other sites

Καλησπέρα παιδιά.  
 
Το import to είχα κάνει πριν από ένα δύο χρόνια από csv το οποίο ήταν UTF-8 γιατί αλλιώς δεν το περνούσε.  Όταν κάνω αλλαγές στις τιμές των προϊόντων ή γενικά κάνω μαζικές μεταβολές χρησιμοποιώ πάντα csv το οποίο μετατρέπω σε UTF-8 με το Notepad++ και δεν είχα κάποιο θέμα μιας και το τσεκάρω και μέσω το phpmyadmin και όλα είναι σε utf8general και μου δίνει κανονικα ελληνικά.  
 
Δεν θα έπρεπε να γίνετε αυτόματα το generation του friendly url μόλις ζητάει κάποιος προϊόν που δεν έχει ρυθμισμένο friendly url;
 
Πχ Αν το προϊόν έχει μόνο λατινικούς χαρακτήρες, τότε το friendly url είναι σωστό.  Τους ελληνικούς χαρακτήρες τους μετατρέπει σε κενο και μετά κάνει και το κενό truncate και δεν βγαίνουν.  Πχ.  το όνομα "Κεφαλή εκτύπωσης HP No 940 Magenta & Cyan" γίνεται "-hp-no-940-magenta-cyan".  

 

Στο /classes/tools.php στις γραμμές 1063-1092 είναι το function str2url το οποίο στην γραμμή 1077 έχει 

 

// Remove all non-whitelist chars.
if ($allow_accented_chars)
$str = preg_replace('/[^a-zA-Z0-9\s\'\:\/\[\]-\pL]/u', '', $str);
else
$str = preg_replace('/[^a-zA-Z0-9\s\'\:\/\[\]-]/','', $str);
 
Αυτό που καταλαβαίνω εγώ είναι πως ότι δεν είναι λατινικό ή νούμερο μετατρέπεται σε " " και παρακάτω τα κενά σβήνονται.  Άρα το θέμα είναι πως όταν δεν έχει περασμένα με το χέρι τα friendly urls στο κάθε προϊόν, κατηγορία κοκ τότε αν δεν είναι με λατινικούς χαρακτήρες σβήνεται.  Άρα δεν θα γίνει ποτέ autogeneration σε ελληνικούς χαρακτήρες.  \
 
Έτσι δεν είναι;;;
 
Ευχαριστώ πολύ για τον χρόνο σας.
Link to comment
Share on other sites

Στα προιόντα σου απο πισω στον κώδικα τα ελληνικα εμφανίζονατι κανονικά ή τα βλέπεις έτσι "Πλακάκια απομίμησης ξύλου"

Link to comment
Share on other sites

Μόλις τώρα είδα πως στο πηγαίο κώδικα στην σελίδα (FO) όντως τα ελληνικά είναι όπως λες 

 

>Μελάνι HP No 901 Tri-Color OfficeJet Ink Crtr CC656A - 9ml - 360σελίδες

 

Αλλά τα μενού είναι κανονικά.  Η σελίδα είναι http://www.cube.com.gr

 

Γιατί όμως αυτό;

Link to comment
Share on other sites

Θα βρεις το αρχείο σου tinymce.inc.js

και θα κοιτάξει αν έχει γραμένο στον κώδικα αυτό entity_encoding: "raw",

αν δεν το έχει να το περάσεις:

entity_encoding: "raw",

πάνω από το σημείο

language: iso,

θα το αποθηκέυσης, από μόνο του δεν θα κάνει κάτι :

 

αλλα θα χρειαστεί να ξανακάνεις import την βάση από την αρχή με τα προιόντα

 

και θα δούμε αν έχει αποτέλεσμα.

Link to comment
Share on other sites

Πήγα στο tinymce.inc.js και υπάρχει η συγκεκριμένη γραμμή.  Και μπήκα και μέσα στο phpmyadmin Και στο ps_product_lang στο name είναι όλα σωστά.  Δηλαδή μου τα δείχνει ελληνικά.

 

Το να ξαναπεράσω την βάση τί ρόλο μπορεί να παίξει;

Link to comment
Share on other sites

Update:
 
Έκανα μία καινούρια εγκατάσταση με τελείως καθαρή database.  Έκανα ένα export από το ERP μου το οποίο το έκανα μετατροπή σε utf-8 Με το notepad++. 
 
Η Εισαγωγή έγινε κανονικά και είδα μέσα τα προϊόντα, αλλά πάλι το ίδιο.  Freindly url γίνεται μόνο για τους λατινικούς χαρακτήρες.  Ποιο είναι το περίεργο;
 
Πέρασε με το import και ένας προμηθευτής μου.  Το όνομα του προμηθευτή είναι στα ελληνικά και η μετατροπή έγινε κανονικά.  Φαίνεται πως το πρόβλημα είναι μόνο στα προϊόντα...
 
Θα χαζέψω μου φαίνεται....
 
Ακόμα πιο περίεργο: όταν πάω στο SEO & URLS/Schema στο product έχω "{category:/}{id}-{rewrite}{-:ean13}.html"
 
Στο supplier έχω "{id}__{rewrite}".
 
Όταν επιλέγω έναν supllier Πχ Αφοι Παπαπαναγιώτου Ο.Ε. το Url γίνεται Http://cube.com.gr/1__αφοι-παπαπαναγιωτου-οε
 
Αν προσθέσω στο schema για τα προϊόντα "{category:/}{id}-{rewrite}{-:ean13}{supplier}.html" τότε πχ για το προϊόν "Κεφαλη Εκτύπωσης B0702 FJ63 Olivetti Black- 450 Pgs" που είναι του προμηθευτή Αφοί Παπαπαναγιώτου Ο.Ε.  και το friendly url γίνεται "http://cube.com.gr/εκτύπωση/1010002--b0702-fj63-olivetti-black-450-pgsαφοι-παπαπαναγιωτου-οε.html"

 

Βέβαια όταν το κάνω copy + paste από την διεύθυνση μου δίνει "http://cubetest.com.gr/%CE%B5%CE%BA%CF%84%CF%8D%CF%80%CF%89%CF%83%CE%B7/1010002--b0702-fj63-olivetti-black-450-pgs%CE%B9%CE%B1%CF%83%CF%89%CE%BD-%CF%80%CE%BB%CE%B7%CF%81%CE%BF%CF%86%CE%BF%CF%81%CE%B9%CE%BA%CE%B7-%CE%B1%CE%B5.html"

 

Έχει κανείς καμιά ιδέα ή να το σπάσω;;;;;

Edited by nikolaosp (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

Τελικά βρήκα λύση στο θέμα μου.

 

 Με το καταπληκτικό Store Manager της eMagicOne μπόρεσα να κάνω μαζική μεταβολή στο friendly Url με χρήση sql εντολών χρησιμοποιώντας το όνομα και αφαιρώντας όλα τα περιττά (κενά, παρενθέσεις, εξτρά παύλες, κτλ κτλ).

 

Τώρα τουλάχιστον μπορώ να κάνω μαζική μεταβολή και έτσι δεν έχω θέμα.

 

Ευχαριστώ για την βοήθεια όλους σας.

  • Like 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...