Συγκεντρώνουμε σ'αυτό το αρχείο οδηγίες σχετικά με εγκατάσταση διάφορων απαραίτητων modules, ή επεκτάσεων που χρησιμοποιει η νέα εφαρμογή diana. # -------------------------------------------------------------------- # Χρήση της επέκτασης jui. Η επέκταση αυτή περιέχει διάφορα widgets που μπορούμε να χρησιμοποιήσουμε, όπως DatePicker, AutoComplete και άλλα. Για την εγκατάστασή της απαιτείται να χρησιμοποιήσουμε τον composer. Για να γίνει αυτό, τρέχουμε τις ακόλουθες εντολές: sudo php require "fxp/composer-asset-plugin:~1.0" sudo php update sudo php require --prefer-dist yiisoft/yii2-jui ΠΡΟΣΟΧΗ: όλα αυτά πρέπει να γίνουν ενώ βρισκόμαστε στο root φάκελο του συγκεκριμένου project. Η εκτέλεση των παραπάνω εντολών θα κατεβάσει κάποια δεδομένα στο φάκελο vendor, αλλιώς θα δημιουργήσει έναν φάκελο με το όνομα αυτό, στον φάκελο όπου βρίσκεται αυτή τη στιγμή ο χρήστης. Το ζητούμενο είναι να φορτωθούν τα επιπλέον δεδομένα στον φάκελο vendor. Επιβεβαιώνουμε στη συνέχεια ότι έχει εγκατασταθεί η επέκταση jui, κοιτάζοντας στο vendor/yiisoft και ελέγχουμε ότι υπάρχει ο φάκελος yii-jui. H τελευταία εντολή απαιτεί και την εισαγωγή κάποιου ειδικού token που παίρνουμε μέσω ενός συνδέσμου που μας παρέχεται, συνδεόμενοι στο git account μας και πατώντας το κουμπί create token. # ---------------------------------------------------------------------- # Χρήση επέκτασης για συναρτήσεις συμβολοσειρών της postgresql. Η επέκταση αυτή εγκαταστάθηκε για χρήση μιας υποτυπώδους συνάρτησης levenshtein, ωστε τα αποτελέσματα ενός query με LIKE να ταξινομούνται με βάση το σκορ που αυτή επιστρέφει. Για την εκγατάσταση της δεδομένης επέκτασης, μπαινουμε ως root χρήστης της pgsql και επιλέγουμε τη βάση που μας ενδιαφέρει. Στυ συνέχεια τρέχουμε την εντολή: CREATE EXTENSION fuzzystrmatch; Εάν αυτό δε λειτουργίσει τότε κάποια extension modules δεν είναι διαθέσιμα απο την εγκατάσταση της postgres. Σ' αυτή τη περίπτωση τρέχουμε πρώτα την εντολή: sudo apt-get install postgresql-contrib και αφού κάνουμε επανεκκίνηση της βάσης, εκτελούμε το πρώτο βήμα που περιγράφεται παραπάνω. # ------------------------------------------------------------------------- # Χρήση της επέκτασης conquer/select2. Η επέκταση αυτή περιέχει διάφορες παραλλαγές dropdown menu. sudo php require conquer/select2 "*" ΠΡΟΣΟΧΗ: το παραπάνω πρέπει να γίνει ενώ βρισκόμαστε στο root φάκελο του συγκεκριμένου project. Η εκτέλεση των παραπάνω εντολών θα κατεβάσει κάποια δεδομένα στο φάκελο vendor, αλλιώς θα δημιουργήσει έναν φάκελο με το όνομα αυτό, στον φάκελο όπου βρίσκεται αυτή τη στιγμή ο χρήστης. Το ζητούμενο είναι να φορτωθούν τα επιπλέον δεδομένα στον φάκελο vendor. Επιβεβαιώνουμε στη συνέχεια ότι έχει εγκατασταθεί η επέκταση conquer, κοιτάζοντας να υπάρχει ο φάκελος vendor/conquer. Βλέπε και σελίδα: http://www.yiiframework.com/extension/yii2-select2/ # ------------------------------------------------------------------------- # Σημαντικές και απαραίτητες πληροφορίες για url redirection απο τον apache2. Γιατί απαιτείται: Οι λειτουργία αυτή πρέπει οπωσδήποτε να οριστεί σε όλα τα μηχανήματα, για λόγους χρήσης του UCSC graphic. Το τελευταίο απαιτεί ανακατεύθυνση σε σύνδεσμο, ο οποίος παράγει δεδομένα binding σε μορφή txt. Ο σύνδεσμος αυτός παρέχεται απο τον κατάλληλο συνδυασμό controller/action που έχουμε ορίσει εμείς. Επειδή ο συν- δεσμος αποτελεί GET parameter του UCSC service, άρα δε πρέπει να περιέχει τους χαρακτήρες "?" και "&". Για να γίνει κατανοητό το παραπάνω, φέρνουμε το ακόλουθο παράδειγμα: η παραγωγή των δεδομένων κειμένου γίνεται απο το σύνδεσμο /diana_tools/web/index.php?r=ucsc/getucsc&app=14&interaction=6977872 Τοτε για να ανοίξουμε την υπηρεσία UCSC χρειάζεται να χρησιμοποιήσουμε σύνδεσμο της μορφής: http://genome.ucsc.edu/cgi-bin/hgTracks?db=hg19&hgt.customText=/diana_tools/web/index.php?r=ucsc/getucsc&app=14&interaction=6977872 Εδώ θα υπήρχε πρόβλημα μετα πολλαπλά "?" και "&" συνεπώς ο δεύτερος σύνδεσμος πρεπει να μεταγραφεί σε κάτι που δεν περιέχει τους χαρακτήρες αυτούς. Για τα παραπάνω χρησιμοποιούμε κάποιες δυνατότητες του apache2 που επιτρέπουν επαναγραφή των συνδέσμων. Τα βήματα που πρέπει να ακολουθήσουμε είναι τα εξής: 1) πηγαίνουμε στο web φακελο του project μας. Δημιουργούμε αρχείο με όνομα ".htaccess" και γράφουμε μέσα τα εξής: // -------------------- // RewriteEngine on # If a directory or a file exists, use it directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Forwarding Rules here RewriteRule ucsc/(\d+)/(\d+) index.php?r=ucsc/getucsc&app=$1&interaction=$2 // -------------------- // Στο παραπάνω, κάθε τμήμα σύνδεσμου της μορφής *ucsc/<ακολουθία-αριθμών1>/<ακολουθία-αριθμών2> θα μετατρέπεται στο *ucsc/<ακολουθία-αριθμών1>/<ακολουθία-αριθμών2>. Για περισσότερες πληροφορίες γύρω απο αυτό ανατρέξτε: http://code.tutsplus.com/tutorials/using-htaccess-files-for-pretty-urls--net-6049 Επιπλέον ένα interface για να δοκιμάζουμε τους κανόνες που γράψαμε: http://htaccess.madewithlove.be/ 2) Ανοίγουμε το αρχείο /etc/apache2/apache2.conf και μετατρέπουμε το Options Indexes FollowSymLinks AllowOverride None Require all granted σε Options Indexes FollowSymLinks AllowOverride All Require all granted 3) Τρέχουμε την εντολή sudo a2enmod rewrite 4) Κάνουμε επανεκκίνηση του apache2 # ------------------------------------------------------------------------- #