Drupal Import – Εισαγωγή δεδομένων
Μια πολύ συχνή λειτουργία που θέλουμε να κάνουμε στο Drupal είναι να εισάγουμε δεδομένα. Το Feeds είναι ένα module που μας δίνει ένα εύχρηστο interface για να κάνουμε κάτι τέτοιο. Υποστηριζει στην κανονική του έκδοση δυστυχώς μόνο της εισαγωγή pages, nodes (όλα τα node types) και users αλλά με διάφορες επεκτάσεις μπορεί να υποστηρίξει κι άλλα entities (τουλάχιστον εγώ εχω βρει για το Profile 2) . Υπάρχει και το Feed Import που έχει λιγότερα installations και δεν το έχω δοκιμάσει οπότε δεν θα μιλήσω γι αυτό.
Το Feeds λοιπόν σου επιτρέπει να εισάγεις δεδομένα τόσο από έναν http σύνδεσμο (πχ ένα rss feed) αλλά και διάφορους τύπους αρχείων, μεταξύ αυτών και το πιο συνηθισμένο CSV που μπορεί να παραχθεί εύκολα από το Excel. Εγω προτιμώ να χρησιμοποιώ σαν seperator το ; (semicolon) καθώς πολλά values (πχ ένα κείμενο) μπορεί να περιέχουν κόμματα και να μας δημιουργούν προβλήματα. Ευτυχώς το feeds υποστηρίζει κάτι τέτοιο out of the box. Επί της ουσίας αυτό που κάνει είναι mapping τα στοιχεία και μετά σου ένα tamplate έτοιμο για συμπλήρωση.
Υποστηρίζονται πολλοί τύποι fields από το fiels αλλά όχι όλοι. Ευτυχώς για πολλα υπάρχουν modules ή patches που κάνουν τη δουλεία. Πχ για entity reference υπάρχει αυτό Feeds Tamper: String to ID που επί της ουσίας βρίσκει τα strings (titles πχ) μέσα σε entities και τα μετατρέπει σε ids και να μπορούν να γίνουν referenced. Αυτή η λειτουργικότητα δεν μπαίνει κατευθείαν στο feeds αλλά στο Tamper, μια επέκταση του feeds που επιτρέπει να γίνονται process τα στοιχεία πριν μπούνε στο feeds (και κατ επέκταση στη βάση). Εκει μπορούμε να κάνουμε διάφορα χρήσιμα πράγματα όπως implode για να χωρίσουμε πχ πολλαπλά terms που έχουμε για ένα πεδιό που θέλουμε να εισάγουμε.
Εισαγωγή Profile 2
Τώρα ένα άλλο που με προβλημάτισε και το βρήκα και το μοιράζομαι είναι η εισαγωγή Profile 2 μέσα στο Drupal. Ευτυχώς υπάρχει μια επέκταση του feeds για αυτό το Feeds Profile 2 . Επί της ουσίας επεκτείνει την εισαγωγή χρήστη του Feeds ώστε να συμπεριλάβει και τα πεδία του Profile2. Κατεβάστε την dev version καθώς υποστηρίζει πολύ περισσότερα πεδία (η κανονική δεν υποστηρίζει ούτε καν Terms).
Εισαγωγή τοποθεσιών
Για να γίνει εισαγωγή τοποθεσίων, καθώς αυτά είναι σύνθετα πάντα πεδιά, χρειάζεται ειδική επέκταση της λειτουργικότητας. Για το πιο διάσημο module τοποθεσίας, το location, υπάρχει το Location Feeds, το οποίο υποστηρίζει την εισαγωγή τους κανονικά (και λειτουργεί και το αυτόματα Geolocation). Για να τ κάνετε να λειτουργεί σε άλλα entity types εκτός από Nodes θα πρέπει απλά να τα προσθέσετε στο module όπως φαίνεται εδώ.
Υπάρχει επίσης υποστήριξη για το Address Fields και μάλιστα και βιντεάκι με οδηγιες εδώ.