
Για να προσθέσουμε κώδικα σε ένα πεδίο, χρησιμοποιούμε αρχικά τη λογική του SuiteCRM που μας επιτρέπει να αλλάξουμε βασικά αρχεία ρυθμίσεων χωρίς να έχουμε το φόβο ότι θα διαγραφούν σε επόμενο update.
Με απλά λόγια: Αντιγράφουμε το αρχείο του module από τον κύριο κατάλογο (πχ public/legacy/modules/<όνομα του module που μας ενδιαφέρει>/metadata/detailviewdefs.php) στον ίδιο κατάλογο που βρίσκεται μέσα στο custom (στο παράδειγμά μας δηλαδή: public/legacy/custom/modules/<όνομα του module που μας ενδιαφέρει>/metadata/detailviewdefs.php).
Οπότε, μπορούμε πλέον να “πειράξουμε” τις ρυθμίσεις των πεδίων, όπως φαίνονται στο detailView, χωρίς να φοβόμαστε ότι το repair θα μας τις διαγράψει. Πάμε παρακάτω:
Όταν το σύστημα διαβάζει το συγκεκριμένο αρχείο, έχει συνήθως φορτωμένο το σχετικό object, το οποίο θα παρουσιάσει στη σχετική σελίδα. Μπορούμε λοιπόν να το διαβάσουμε και να πάρουμε από εκεί τις πληροφορίες που μας ενδιαφέρουν για να τις παρουσιάσουμε στη σελίδα μας.
Πχ αν θέλουμε να δείξουμε στο detailView (τα ίδια ισχύουν για το editView και για το listView) μια εικόνα που έχουμε φορτωμένη ως url σε άλλο πεδίο, μπορούμε να βάλουμε στην κορυφή του αρχείου detailviewdefs.php τον παρακάτω κώδικα, που φορτώνει το html για την εμφάνιση της φωτογραφίας και το αποθηκεύει στη μεταβλητή $image:
<?php
$module_name = ‘Accounts’;
$image = “<a href='” . $focus->media_url . “‘ target=’_blank’><img src='” . $focus->media_url . “‘ width=’100′ height=’100’></a>”;
Στη συνέχεια, βρίσκουμε το πεδίο που θέλουμε να δείξουμε τη φωτογραφία (και έχουμε πχ ορίσει πιο πριν στο studiο), πχ το “account_image” στην περίπτωσή μας, και προσθέτουμε custom code ως εξής:
array (
‘name’ => ‘account_image’,
‘studio’ => ‘visible’,
‘label’ => ‘LBL_ACCOUNT_IMAGE’,
‘customCode’ => $image,
),
Με αυτό τον τρόπο, έχουμε προσθέσει ειδικό κώδικα στο συγκεκριμένο πεδίο. Μπορούμε επίσης να καλέσουμε ajax δεδομένα, να τραβήξουμε στοιχεία από κάποιο endpoint κλπ.

