Prestag0od Posted February 22, 2018 Share Posted February 22, 2018 (edited) Έχω εισαγάγει τα προϊόντα από αρχείο csv. Οι τίτλοι προϊόντων ήταν στην ελληνική γλώσσα. Mετά την εισαγωγή, το πεδίο Friendly URL είναι άδειο ή περιέχει μόνο αριθμούς και λατινικά όπως /-baby-ML21321.html ενώ ο τίτλος είναι "παιδικό παντελόνι baby ML 21321 " Δεν περιλαμβάνονται δηλαδή οι ελληνικές λέξεις από τον τίτλο.Έτσι πρέπει να ανοίξω όλα τα προϊόντα ένα προς ένα και να αναδημιουργήσω το φιλικό URL πατώντας το "Δημιουργήστε" ώστε το παραπάνω για παράδειγμα να γίνει /παιδικό-παντελόνι-baby-ML21321.html. Υπάρχει κάποιος τρόπος να τα επαναδημιουργήσω όλα μαζί; Έψαξα για Modules και για scripts αλλά δεν υπάρχει κάτι σχετικό. Edited February 22, 2018 by Prestan0ob (see edit history) Link to comment Share on other sites More sharing options...
sanctusmob Posted February 22, 2018 Share Posted February 22, 2018 Θα μπορούσες να το κάνεις στην βάση. select pl.name, replace(lower(pl.name),' ','-') as link_rewrite from ps_product_lang as pl where pl.id_lang = '2' Με το παραπάνω μπορείς να δεις για κάθε προϊόν το link rewrite που θα μπει (όπου id_lang βάζεις για την γλώσσα που σε ενδιαφέρει). Το μόνο που κάνει είναι το lower και replace τα κενά με παύλα. Αλλά να ξέρεις το παραπάνω θα παίξει σωστά μόνο αν δεν έχει περίεργους χαρακτήρες στα ονόματα των προϊόντων (#,%,',",/,\, κτλ). Αν έχεις κάποιων χαρακτήρα συχνά μπορείς να βάλεις μερικά ακόμη replace. π.χ. για το # select pl.name, replace(replace(lower(pl.name),' ','-'),'#','') as link_rewrite from ps_product_lang as pl where pl.id_lang = '2' Κανονικά θέλει ένα regular expression σε μερικά replace , squeeze repeats και trim σε κενό ή τα κενά και στο τέλος ένα replace το κενό με παύλα. Αν μου πεις τι DB έχεις (mariaDB, Mysql) θα μπορούσα να στο κάνω και με regular expression. Τρέξε το παραπάνω και αν δεν έχεις πολλά προϊόντα με αυτούς τους χαρακτήρες τρέχε το παρακάτω για το εφαρμόσεις και μετά διορθώνεις τα συγκεκριμένα προϊόντα με το χέρι. update ps_product_lang as pl set link_rewrite = replace(lower(pl.name),' ','-') where pl.id_lang = '2' Στο set θα βάλεις το τελικό replace που έχεις κατασταλάξει. Υ.Γ. Γενικός αλλαγές στο link rewrite θα πρέπει να ξέρεις τι κάνεις ώστε να μην χάσεις πάρα πολύ από το google rank που έχεις. Link to comment Share on other sites More sharing options...
Prestag0od Posted February 22, 2018 Author Share Posted February 22, 2018 (edited) Ευχαριστώ πολύ φίλε μου. Ήμουν έτοιμος να αγοράσω ενα module αλλά δεν ήμουν σίγουρος εαν θα δούλευε στα Ελληνικά https://codecanyon.net/item/prestashop-tidy/18965736?ref=GreenMouseStudio . Θα δοκιμάσω το query σου και επανέρχομαι! Βάση δεδομένων έχω MariaDB και απο χαρακτήρες έχω μόνο ) και ( και ίσως και - Edited February 22, 2018 by Prestan0ob (see edit history) Link to comment Share on other sites More sharing options...
sanctusmob Posted February 22, 2018 Share Posted February 22, 2018 Δοκίμασε αυτό select pl.name, replace(lower(REGEXP_REPLACE(pl.name,'-()/#%','')),' ','-') as link_rewrite from ps_product_lang as pl where pl.id_lang = '2' Link to comment Share on other sites More sharing options...
Prestag0od Posted February 22, 2018 Author Share Posted February 22, 2018 Ευχαριστώ πολύ το δοκίμασα και δουλεύει σωστά. Μου εμφανίζει τα αποτελέσματα αλλά δεν εφαρμίζει τις αλλαγές στο Link_rewrite. Τι πρέπει να κάνω; Link to comment Share on other sites More sharing options...
sanctusmob Posted February 22, 2018 Share Posted February 22, 2018 Για να πάρει τις αλλαγές τρέχεις αυτό update ps_product_lang as pl set link_rewrite = replace(lower(REGEXP_REPLACE(pl.name,'-()/#%','')),' ','-') where pl.id_lang = '2' Link to comment Share on other sites More sharing options...
Prestag0od Posted February 22, 2018 Author Share Posted February 22, 2018 Ευχαριστώ! Link to comment Share on other sites More sharing options...
kotheodr Posted March 26, 2019 Share Posted March 26, 2019 είναι εύκολο να εξηγήσετε πως μπορεί να γίνει αυτό. Link to comment Share on other sites More sharing options...
sanctusmob Posted March 27, 2019 Share Posted March 27, 2019 13 hours ago, kotheodr said: είναι εύκολο να εξηγήσετε πως μπορεί να γίνει αυτό. Κάθε περίπτωση δεν είναι ίδια. Πες μας τι ακριβός θέλεις να κάνεις? 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