Elxis CMS Forum

Ελληνικό Forum => Γενικά Θέματα για το Elxis CMS => Topic started by: michalis1984 on December 08, 2013, 15:03:37

Title: Άγνωστο feature του elxis 4;
Post by: michalis1984 on December 08, 2013, 15:03:37
Έχω προσέξει κάτι πολύ παράξενο (και φυσικά θετικό) στο elxis 4.

Ας υποθέσουμε πως υπάρχει ένα άρθρο σε μια ιστοσελίδα με elxis 4 στο path /shops/greece/athens.html

Αν κάποια στιγμή στο μέλλον μετακινήσω το συγκεκριμένο άρθρο απ' την κατηγορία greece κάπου αλλού (και αλλάξει το url) τότε ακόμη κι αν κάποιος χρήστης επισκευθεί την πρώτη τοποθεσία, εξακολουθεί να βλέπει την τρέχουσα έκδοση του άρθρου. Φτάνει να μην αλλάξει το athens.html

Δηλαδή έδω την υποψια πως όταν κάποιος χρήστης για κάποιο λόγο επισκευθεί κάποιο άρθρο που δεν υπάρχει (πχ. απο μη ενημερωμενο Link σε εξωτερική σελίδα ή μηχανή αναζήτησης), τότε πριν βγάλει error 404, το elxis ψάχνει αν υπάρχει άλλο άρθρο με το ίδιο όνομα αρχείου (athens.html), και αν υπάρχει τότε το προβάλλει εκείνο.

Έχω καθαρίσει cache αλλά πάλι εξακολουθεί να συμβαίνει σε όσα sites "αναβάθμισα" σε elxis4 και άλλαξα ορισμένες κατηγορίες σύμφωνα με το πιο πάνω σενάριο.

Είναι όντως έτσι ή κάτι άλλο συμβαίνει;
Title: Re: Άγνωστο feature του elxis 4;
Post by: michalis1984 on December 08, 2013, 15:38:20
Όντως έτσι είναι  ;D

Μπορείτε να το δοκιμάσετε στα sites σας χωρίς να αλλάξετε τίποτα. Απλα αλλάξτε στη διεύθυνση στον browser σας την κατηγορία σε κάτι που δεν υπάρχει αφήνοντας το αρχείο όπως είναι. Θα δείτε πως το άρθρο εξακολουθεί να εμφανίζεται χωρίς πρόβλημα.

πχ. http://www.glwsses.gr/foreign-language-advices/can-i-learn-new-language.html
είναι το ίδιο με

http://www.glwsses.gr/dgsdfsdf/can-i-learn-new-language.html

Μια πρόταση: Πολύ καλό feature αλλά δεν θα ήταν καλύτερο εαν γινόνταν redirect 301 στην original τοποθεσία; Αν υπάρχει κάποιος τρόπος να γίνεται αυτόματα θα ήταν τέλεια.
Title: Re: Άγνωστο feature του elxis 4;
Post by: datahell on December 09, 2013, 00:11:17
Δεν πρόκειται για feature αλλά δουλεύει έτσι προκειμένου το Elxis να είναι πιο γρήγορο.
Εξηγώ.

Ως γνωστόν το Elxis 4.x υποστηρίζει κατηγορίες άπειρων επιπέδων. Μπορεί λοιπόν κάποιος να έχει αυτό το άρθρο:
category1/category2/category3/category4/category5/article.html

Για να ελέγξει το Elxis την πλήρη διαδρομή στο παραπάνω παράδειγμα χρειάζεται ένα σωρό επερωτήματα στη βάση. Αντ' αυτού κάνει το εξής: παίρνει μόνο το τελευταίο μέρος (segment) της url (article.html) και ελέγχει μόνο αυτό. Αν είναι ΟΚ τότε εμφανίζει την σελίδα. Βέβαια αυτό για το component content. Γιατί πριν φτάσουμε στο content το Elxis έχει ήδη κάνει δρομολόγηση (routing) και ξέρει οτι αυτή η σελίδα είναι μία σελίδα του συγκεκριμένου component. Συνεπώς αν βάλετε μία url όπως την παρακάτω δεν θα πάρετε την σελίδα του άρθρου αλλά error 404  (η σελίδα δεν βρέθηκε).

http://www.example.com/user/article.html

Θα μου πείτε αρκεί μόνο αυτός ο ένας έλεγχος στο τελευταίο segment; Ναι! Το Elxis γνωρίζει ότι αρκεί μόνο αυτός ο έλεγχος καθώς στη βάση δεδομένων κατά την επεξεργασία κατηγοριών/άρθρων γίνεται γενικοί έλεγχοι κρυφά και ενημερώνονται πολλά πράγματα (κατηγορίες, άρθρα, διαδρομές)  όπου χρειάζεται. Έτσι ξέρει ότι ότι έχει στη βάση είναι σωστό. Για παράδειγμα αν αποδημοσιεύσετε την κατηγορία "category4" αυτομάτως θα αποδημοσιευθεί και η κατηγορία category5 αλλά και τα άρθρα των κατηγοριών category4 και category5. Αν τότε ζητήσετε το "article.html" (με οποιαδήποτε διαδρομή) θα σας πει ότι η σελίδα δεν υπάρχει. Ομοίως (αυτόματα) δουλεύει και η πρόσβαση στις σελίδες. Είναι πολλά πράγματα που κάνει το Elxis από μόνο του προκειμένου το interface του να είναι απλό και να επικεντρώνεται ο διαχειριστής μόνο στην εισαγωγή περιεχομένου αφήνοντας τις σύνθετες λειτουργίες στον αυτόματο πιλότο...

Τώρα θα πει κάποιος ότι από SEO άποψη είναι κακό μία σελίδα να εμφανίζεται με 2 ή περισσότερες url. Συμφωνώ απολύτως! Αλλά το Elxis δεν το κάνει! Δεν εμφανίζει πουθενά διαφορετική url. Πάντα εμφανίζεται η ίδια, σωστή, url σε όλα τα link και ακόμα και το pathway είναι πάντα σωστό ασχέτως αν εσείς ζητήσετε την σελίδα με άλλη url. Παρατηρήστε το pathway και τα link. Συνεπώς ο μόνος τρόπος να γίνει κάτι άσχημο με διπλές urls είναι αν εσείς εσκεμμένα δημοσιεύετε τέτοιες urls.

Αν θέλετε να δείτε πως κάνει routing το Elxis στο component content κοιτάξτε το αρχείο components/com_content/content.php
Εκεί θα δείτε διάφορα ωραία, πχ καταλαβαίνει ότι η σελίδα είναι μία σελίδα κατηγορίας με αυτο το απλό: $eURI->isDir()

Αυτά εν συντομία. Ο πυρήνας του Elxis 4.x θεωρώ ότι είναι πάρα πολύ έξυπνος και σοφός.