Elxis CMS Forum

Ελληνικό Forum => Γενικά Θέματα για το Elxis CMS => Topic started by: farmville450 on July 17, 2016, 01:58:11

Title: Αίτημα για το Elxis 4.5
Post by: farmville450 on July 17, 2016, 01:58:11
Καλημέρα σε όλους
Προσπαθώ να κατασκευάσω μία καινούρια template σην οποία θα ήθελα να βάλω μία απλή φόρμα επικοινωνίας στο
footer (σαν ενσωματωμμένο module). Ωστόσο όμως θέλω να δουλεύει με τη χρήση ενός αρχείου ajax.php για το validation ώστε να μη χρειάζεται να ξαναφορτώσει ολόκληρη η σελίδα σε περίπτωση λάθους. Παρατήρησα ότι αν το ajax.php βρίσκεται στο φάκελο των templates δε δουλεύει, ενώ αν βρίσκεται σε φάκελο modules δεν παρουσιάζει κανένα πρόβλημα. Για να δουλέψει τροποποίησα την public function genericajax() που βρίσκεται στο αρχείο components\com_content\controllers\generic.php και που μάλλον αυτή ευθύνεται για τις κλήσεις ajax. Διορθώστε με αν κάνω λάθος αλλά νομίζω ότι δεν μπορώ να καλέσω ajax αν πρόκειται για template. Θα ήθελα αν είναι εύκολο και δεν παρουσιάζει κάποιο θέμα ασφάλειας, να προσθέσετε και αυτή τη δυνατότητα στο Elxis 4.5
Ευχαριστώ
Title: Re: Αίτημα για το Elxis 4.5
Post by: datahell on July 17, 2016, 21:39:29
Ναι, επιτρέπεται μόνο σε module, plugin, μηχανές αναζήτησης και μεθόδους πιστοποίησης.
Πρόσθεσα στο Elxis 4.5 και τα template. Αν δεν το έχεις φτιάξει ήδη μόνος σου κάνε ότι γράφω παρακάτω. Όταν κάνεις αναβάθμιση σε 4.5 δεν θα σου χαλάσει τίποτα γιατί έτσι θα είναι και το 4.5.

Άνοιξε το αρχείο components/com_content/controllers/generic.php
Πήγαινε στη γραμμή 364 (ή εκεί γύρω) και βρες αυτό:

} else if (strpos($f, 'components/com_search/engines/') === 0) {
   $ok = true;
} else {
   $ok = false;
}

κάντο έτσι και είσαι έτοιμος:
} else if (strpos($f, 'components/com_search/engines/') === 0) {
   $ok = true;
} else if (strpos($f, 'templates/system/') === 0) {
   $ok = false;//not the system template!
} else if (strpos($f, 'templates/admin/') === 0) {
   $ok = false;//not the administration templates!
} else if (strpos($f, 'templates/') === 0) {
   $ok = true;
} else {
   $ok = false;
}

Σημείωση 1: Το αρχείο δεν χρειάζεται να λέγεται ajax.php, μπορείς να το ονομάσεις όπως θες. Το generic ajax δουλεύει στέλνοντας στο _POST μία την παράμετρο f με τιμή την σχετική διαδρομή του αρχείου που θες να κάνεις include.

Σημείωση 2: Δεν είναι υποχρεωτική η χρήση του "generic ajax". Μπορείς να φτιάξεις το δικό σου αρχείο εντός της επέκτασής σου και να το καλείς κατευθείαν. Καθώς αυτή η κλήση θα είναι σε αρχείο εκτός του Elxis πιθανότατα θα χρειαστεί στην κορυφή αυτού του αρχείου να καλέσεις τον mini loader ώστε να φορτώσεις τον πυρήνα του Elxis. Υπάρχουν αρκετές επεκτάσεις που κάνουν κάτι τέτοιο και μπορείς να δεις ως παράδειγμα.
Title: Re: Αίτημα για το Elxis 4.5
Post by: farmville450 on July 17, 2016, 22:52:18
Ευχαριστώ πολύ, δουλεύει τέλεια!!!
Τώρα αν η template χρειάζεται (που σίγουρα θα χρειάζεται) διορθώσεις προβλέπω να τις κάνεις εσύ. ;D