Jump to content

Αυτόματη δημιουργία greeklish URL από το όνομα του προϊόντος


Recommended Posts

Καλησπέρα σε όλους. 
Επείδη βαριόμουν 1f61b.png:P κάθε φόρα που καταχωρούσα ένα προιον να βάζω στα greeklish το φιλικό url . εκάτσα και εφτιάξα ένα module για αυτόματη δημιουργία greeklish URL από το όνομα του προϊόντος. 

Δουλεύει σε Prestashop 1.7x 
 

np_greeklishslug.zip

Edited by eyaggelos (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites

Καλησπέρα και καλώς ήρθες.

Θέλει λίγη βελτίωση και θα είναι τέλειο.

Θα πρέπει να regular expression να αντικαταστατής όποιον χαρακτήρα δεν είναι αλφαριθμητικό (αγγλικό - ελληνικό) με το κενό.

Μετά πάλι με rexex ότι είναι πάνω από δύο κενά να το κάνεις 1 (squeeze repeats).

Και μετά όπως σωστά κάνεις replace το space με minus.

Ακόμη το char mapping θα μπορούσε να είναι καλύτερο, π.χ. το Χ είναι το ch αλλά αυτά ας τα αλλάξει ο καθένας από μόνο του.

Share this post


Link to post
Share on other sites

Καλησπέρα.

Σε ευχαριστώ για τις παρατηρίσεις σου. 

Quote

Θα πρέπει να regular expression να αντικαταστατής όποιον χαρακτήρα δεν είναι αλφαριθμητικό (αγγλικό - ελληνικό) με το κενό.

 

 

π.χ 

Θήκη Тонкий  TPU Ultra Thin για Samsung S9 Plus διάφανη

λες να γίνει 

thiki-tru-ultra-thin-gia-samsung-s9-plus-diafanh.

καταλάβα σωστα ;' 

 

 

Share this post


Link to post
Share on other sites
1 hour ago, eyaggelos said:

Καλησπέρα.

Σε ευχαριστώ για τις παρατηρίσεις σου. 

 

π.χ 

Θήκη Тонкий  TPU Ultra Thin για Samsung S9 Plus διάφανη

λες να γίνει 

thiki-tru-ultra-thin-gia-samsung-s9-plus-diafanh.

καταλάβα σωστα ;' 

 

 

Δεν είπες πως το Ελληνικό product title θα έχει χαρακτήρες εκτός από ελληνικά και αγγλικά... και προφανώς δεν βρίσκω λόγο να έχει, ειδικά ρώσικα.

Αυτό που πρέπει να γίνετε στην ουσία είναι να αφαιρεθούν όλοι οι special characters. ex. ~!@#$%^&*(){}[];':",.<>/? συν κάτι ® ¶ © ™

 

Edited by sanctusmob (see edit history)

Share this post


Link to post
Share on other sites

έχεις δικαιο .

θα φροντίσω μόλις βρω χρόνο να το διορθώσω  και να το ξανα ανεβάσω την καινουργία εκδοση !

Σε ευχαριστω παρα πολυ!!!!!

Share this post


Link to post
Share on other sites

Είχα κάνει το ίδιο σε C#. Σου δίνω τον κώδικα για να τον κάνεις μετατροπή σε php.

Το είχα κάνει λίγο διαφορετικά από αυτό που αναφέρω πιο πάνω αλλά είναι σωστό και δοκιμασμένο.

Απλός δεν θα σου δώσω το character mapping...

Αν κάνεις από την αρχή σε lower το input string γλυτώνεις από το character mapping τα κεφαλαία...

Εκεί που κάνω replace το "΄"  είναι γιατί για κάποιο λόγω ΔΕΝ το έπιανε το regex, θεωρεί μάλλον πως είναι Ελληνικός χαρακτήρας.

Regex nonAlnu = new Regex(@"[^a-zA-Z0-9\p{IsGreekandCoptic}]"); //Regex for non alphanumeric and Greek
Regex trimminus = new Regex(@"[-]{2,}"); //Regex for repeated minus

strInput = strInput.ToLower();
strInput = nonAlnu.Replace(strInput, "-"); //Replace non alphanumeric and Greek with minus
strInput = toGreeklish(strInput); // Convert to Greeklish
strInput = trimminus.Replace(strInput, "-"); //Squeze repeated minus                 
strInput = strInput.Replace("΄", ""); //Remove wtf
strInput = strInput.Trim('-'); //Trim Start End minus
strInput = strInput.Trim(); //Trim Start End space

 

Share this post


Link to post
Share on other sites
3 hours ago, geogian said:

Σε μενα δεν λειτουργεί.

Το δοκίμασα σε έκδοση  1.7.2.4 και 1.7.3.0

 

στείλε μου μήνυμα αν θες να το δούμε 

Share this post


Link to post
Share on other sites

Ok τώρα 

Δεν είχα καταλάβει πως λειτουργούσε. Θέλει αποθήκευση για να τρέξει το script

Πολύ καλό και χρήσιμο το module .

Ευχαριστούμε 

Share this post


Link to post
Share on other sites
On 11/4/2018 at 10:26 PM, geogian said:

Ok τώρα 

Δεν είχα καταλάβει πως λειτουργούσε. Θέλει αποθήκευση για να τρέξει το script

Πολύ καλό και χρήσιμο το module .

Ευχαριστούμε 

 

Καλησπέρα.

Ξέχασα να το αναφέρω !

σε ευχαριστώ πολύ.

 

---

Συντομα θα ανεβασω & την καινουργια εκδοση 

Edited by eyaggelos (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites
  • 4 months later...
  • 1 month later...
  • 2 weeks later...
  • 3 weeks later...
  • 2 months later...
18 hours ago, panos said:

καλησπέρα δουλεύει και σε 1.7.5 ? δεν με αφήνει να το κάνω εγκατάσταση 😪

  Άνοιξε το module και δες αν έχει δηλωμένο Max version.  Λογικά θα είναι κάτω από ένα.εφτά.πέντε   Γιατί όταν γράφτηκε δεν υπήρχε αυτή η έκδοση. Οπότε αν το αλλάξεις θα σε αφήσει να το κάνεις εγκατάσταση   

Share this post


Link to post
Share on other sites
4 hours ago, sanctusmob said:

  Άνοιξε το module και δες αν έχει δηλωμένο Max version.  Λογικά θα είναι κάτω από ένα.εφτά.πέντε   Γιατί όταν γράφτηκε δεν υπήρχε αυτή η έκδοση. Οπότε αν το αλλάξεις θα σε αφήσει να το κάνεις εγκατάσταση   

Δεν έχει δηλωμένο max version. Έχει μόνο min . Έκανα κάποιες δοκιμές αλλά δεν κατάφερα κατι 

Share this post


Link to post
Share on other sites
  • 2 weeks later...
  • 1 month later...
  • 2 weeks later...

Καλησπέρα, για κάποιο λόγο δεν μπορώ να εγκαταστήσω το module. Διορθώθηκε το πρόβλημα και τώρα δουλεύει. Θα βοηθήσει αρκετά καθώς όλοι ξέρουμε πως φαίνονται οι ελληνικοί χαρακτήρες στα links... Επίσης έχω την εντύπωση ότι βοηθάει και στο SEO.

Από ότι καταλαβαίνω η μετατροπή γίνεται για προϊόντα που δημιουργούνται από την εγκατάσταση του module και μετά, για παλιότερα προϊόντα υπάρχει κάποιος τρόπος;

 

Edited by aramonkg (see edit history)

Share this post


Link to post
Share on other sites

Καλησπέρα και σε ευχαριστώ για το ενδιαφέρον σου,

σε ποια εκδοσή προσπαθείας να κάνεις εγκατάσταση  το πρόσθετο; 

στείλε μου email στο info@nextpointer.gr ή pm 

Share this post


Link to post
Share on other sites

Για να απαντήσω στην δική μου ερώτηση, αν χρειάζεται να μετατραπούν τα friendly urls σε greeklish για προϊόντα που έχουν δημιουργηθεί στο παρελθόν, όπως στη δική μου περίπτωση, μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή SQL (για 1.7.x).

UPDATE `ps_product_lang` SET `link_rewrite`= REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(`link_rewrite`,'α','a'),'ά','a'),'β','b'),'γ','g'),'δ','d'),'ε','e'),'έ','e'),'ζ','z'),'η','h'),'ή','h'),'θ','th'),'ι','i'),'ί','i'),'κ','k'),'λ','l'),'μ','m'),'ν','n'),'ξ','ks'),'ο','o'),'ό','o'),'π','p'),'ρ','r'),'σ','s'),'ς','s'),'τ','t'),'υ','u'),'ύ','u'), 'φ', 'f'),'χ','ch'),'ψ','ps'),'ω','w'),'ώ','w') WHERE id_lang=2

Καθώς αυτό αντικαθιστά μόνο lowercase χαρακτήρες θα πρέπει πριν να έχετε εκτελέσει...

UPDATE `ps_product_lang` SET `link_rewrite`= LOWER(`link_rewrite`) WHERE id_lang=2

Ναι ξέρω είναι nested replace αλλά δουλεύει, όπου id_lang το αλλάζετε για να ανταποκρίνεται στο id της ελληνικής γλώσσας του site σας. Αν τώρα θέλετε να το δοκιμάσετε μόνο για ένα προϊόν για να σιγουρευτείτε προσθέστε στο τέλος και το εξής.

 AND id_product=[test product ID]

 

Edited by aramonkg
convert to lowercase step (see edit history)
  • Like 1

Share this post


Link to post
Share on other sites
  • 1 year later...
  • 1 month later...

Καλησπέρα, σε 1.7.6.7 ανεβάζω τον φάκελο του module μεσω ftp στον φάκελο "Modules" αλλά δεν μου εμφανίζεται στα modules.
Επίσης αν προσπαθήσω να το ανεβάσω σαν zip από το backend μου βγάζει "Αυτό το αρχείο δεν φαίνεται να είναι έγκυρο zip προσθέτου".

Γνωρίζει κάποιος πως μπορώ να το κάνω εγκατάσταση;

Ευχαριστώ!

Share this post


Link to post
Share on other sites
5 hours ago, stagosal said:

Καλησπέρα, σε 1.7.6.7 ανεβάζω τον φάκελο του module μεσω ftp στον φάκελο "Modules" αλλά δεν μου εμφανίζεται στα modules.
Επίσης αν προσπαθήσω να το ανεβάσω σαν zip από το backend μου βγάζει "Αυτό το αρχείο δεν φαίνεται να είναι έγκυρο zip προσθέτου".

Γνωρίζει κάποιος πως μπορώ να το κάνω εγκατάσταση;

Ευχαριστώ!

Καλησπέρα ,

Στείλε μου μήνυμα στο info@nextpointer.gr να το δούμε μαζί.

 

 

Share this post


Link to post
Share on other sites
  • 4 months later...

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...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More