[Joomla 2.5] Δημιουργία της δικής μας σελίδας σφάλματος 404

Joomla! forum. Joomla! Questions and Answers.

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13307
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

[Joomla 2.5] Δημιουργία της δικής μας σελίδας σφάλματος 404

Δημοσίευση από EneMe » 07 Σεπ 2012 13:06

Σε αυτό το βοήθημα θα εξηγήσω τον πολύ απλό τρόπο δημιουργίας μιας σελίδας σφάλματος 404.

Ζητώ συγνώμη αν γράφω μερικές επιλογές στα αγγλικά και μερικές στα ελληνικά, αλλά τώρα που βρήκα χρόνο να το γράψω, έχω ανοίξει ένα site υπό κατασκευή και δεν έχω ολοκληρώσει τα πάντα.

Το βασικό ζητούμενο μιας σελίδας σφάλματος 404 είναι να πληροφορήσει τον επισκέπτη ότι αυτό που ζήτησε δεν βρέθηκε.
Σκοπός όμως είναι να μην νιώσει ο χρήστης ότι έφυγε από την σελίδα μας ή ακόμη χειρότερα ότι δεν έφτασε ποτε εκεί.
Για τον λόγο αυτό η σελίδα 404 θα είναι ουσιαστικά ένα άρθρο και η εμφάνιση θα είναι ίδια με της ιστοσελίδας.


:arrow: 1) Δημιουργούμε ένα νέο άρθρο (αυτό που θα εμφανίζεται).

Τίτλος: 404

Κατηγορία: Uncategorized

Κατάσταση: Δημοσιευμένο

Κείμενο άρθρου: Εδώ γράφουμε το μήνυμα που θα εμφανίζεται, βάζουμε εικόνας, αφήνουμε την φαντασία μας να οργιάσει!

Επιλογές άρθρου: Εδώ καλό είναι να απενεργοποιήσουμε τον χρόνο δημοσίευσης, τον συντάκτη, τους συνδέσμους, την κατηγορία και γενικά ότι μπορεί να εμφανίσει ένα άρθρο.
Μην ξεχνάμε ότι αυτό το "άρθρο" θα είναι μόνιμο και μπορεί να προβληθεί σε κάποιον χρήστη οποιαδήποτε στιγμή.
Εγώ προσωπικά τα απενεργοποιώ όλα.


:arrow: 2) Πάμε στο main menu και δημιουργούμε ένα νέο menu item

Είδος στοιχείου μενού: Single article/Μεμονωμένο άρθρο. Στις υποχρεωτικές ρυθμίσεις δεξιά επιλέγουμε το άρθρο που δημιουργήσαμε πριν, 404.

Τίτλος μενού: 404

Κατάσταση: Αδημοσίευτο

Το αποθηκεύουμε, το ξανανοίγουμε και αντιγράφουμε τον σύνδεσμο που έχει δημιουργηθεί, λογικά της μορφής

Κώδικας: Επιλογή όλων

index.php?option=com_content&view=article&id=000

:arrow: 3) Αντιγράφουμε το αρχείο error.php

- από τον φάκελο του joomla στη διαδρομή templates/system/

- στον φάκελο templates/yourtemplate/


:arrow: 4) Τροποποιούμε το νέο αρχείο error.php που βρίσκεται στον φάκελο templates/yourtemplate/ (το template που χρησιμοποιούμε δηλαδή)

Ανοίγουμε το αρχείο και βρίσκουμε την γραμμή

Κώδικας: Επιλογή όλων

defined('_JEXEC') or die;
Ακριβώ από κάτω γράφουμε:

Κώδικας: Επιλογή όλων

if (($this->error->getCode()) == '404') {
header('Location: index.php?option=com_content&view=article&id=000');
exit;
}
Προσοχή! Στο Location βάζετε το link που αντιγράψαμε στο 2ο βήμα.

Αποθηκεύετε και τέλος!


:arrow: 5) Δοκιμάζετε να δείτε αν όλα είναι εντάξει.

Απλά γράψ'τε στον browser σας www.το-site-σας.gr/μια-σελιδα-που-δεν-υπάρχει και πατήστε enter.

Ελπίζω να σας φανεί χρήσιμο! :D

Άβαταρ μέλους
EneMe
Super Moderator
Δημοσιεύσεις: 13307
Εγγραφή: 09 Ιούλ 2002 13:29
Τοποθεσία: Στο κέντρο της Ελλάδας!
Επικοινωνία:

[Joomla 2.5] Δημιουργία της δικής μας σελίδας σφάλματος 404

Δημοσίευση από EneMe » 07 Σεπ 2012 18:57

Μετά από μια κουβέντα που είχα με κάποιο μη-μέλος που διάβασε όσα έγραψα, ας το πάμε ένα βήμα παραπέρα.

Ερώτηση: Γιατί να χρησιμοποιήσω στο 4ο βήμα relative link και να μην βάλω το άρθρο με full link (http://www.κλπ.κλπ.κλπ)?
Προσωπικά προτιμώ σε τέτοια πράγματα να χρησιμοποιώ relative links για λόγους "τάξης".

Πρέπει να σημειωθεί ότι όλο αυτό που περιέγραψα παραπάνω αφορά ένα και μόνο template (αυτό που χρησιμοποιείται), δηλαδή το custom 404 error page που δημιουργήσαμε δεν θα δουλεύει αν αλλάξουμε template.
Αν αλλάξουμε template, απλά θα αντιγράψουμε το error.php που περιέγραψα παραπάνω στον φάκελο του νέου μας template.

Σε αυτό το σημείο θα πάμε ένα σκαλί πιο πάνω.

Πολλοί αγνοούν ή ξεχνούν ή απλά δεν χρησιμοποιούν την δυνατότητα που έχει το joomla ώστε να υπάρχουν 2 ή περισσότερα templates ενεργά στο ίδιο site, ας πούμε ανάλογα με την κατηγορία άρθρων.

Μπορεί δηλαδή κάποιος να έχει μια κατηγορία Α που εμφανίζεται με το templateA (πχ κόκκινο) και μια κατηγορία Β που εμφανίζεται με το templateB (πχ πράσινο).
Ο ιδιοκτήτης ενός site σε joomla μπορεί να θέλει να εμφανίζεται διαφορετικό μήνυμα σφάλματος 404 ανά κατηγορία (πχ στην κατηγορία Α μια φωτογραφία με ένα κόκκινο ανθρωπάκι και στην κατηγορία Β μια φωτογραφία με πράσινα ανθρωπάκια).

Αν ακολουθήσει την διαδικασία που έγραψα στο αρχικό post για κάθε template, τότε μπορεί να έχει περισσότερες από μία custom 404 error pages.



:arrow: Άλλη ερώτηση: Γιατί να μην βάλω στο Location απλά το http://www.tositemou.gr;

Αυτό δεν θα οδηγήσει τον χρήστη που έκανε λάθος σε κάποια ειδική σελίδα, απλά θα τον πάει στο index. Θεωρώ ότι καλύτερο είναι να ξέρει ο χρήστης ότι έκανε λάθος (επειδή θα του το πούμε με την 404 σελίδα μας), παρά να βρεθεί "ως δια μαγείας" στο index της ιστοσελίδας μας.
Κατά συνέπεια αυτό γίνεται, αλλά προσωπικα δεν το συστήνω.



:arrow: Τέλος ακόμη μια παρατήρηση:

Πάντα ήταν "της μόδας" τα αστεία 404 error pages τα οποία δεν έχουν καμία εμφανισιακή ή λειτουργική σχέση με το υπόλοιπο site.
Όσο αστεία κι αν είναι, προσωπικά πιστεύω ότι ο χρήστης που έκανε λάθος, θα πάει σε μια σελίδα που θα του κάνει μεν εντύπωση, αλλά τελικά εγώ έχω μεγάλη πιθανότητα να τον χάσω από επισκέπτη.
Για παράδειγμα αν σε μια τέτοια σελίδα 404 βάλω ένα παιχνίδι, ο χρήστης θα χαζέψει με αυτό, θα διασκεδάσει, αλλά πιθανότατα θα ξεχάσει από πού και γιατί ήρθε στο site μου και τελικά δεν θα έχω κάποιο όφελος.

Πάντως άν κάποιος θέλει να πάει σε μια τέτοια λύση, τότε τα πράγματα είναι απλά.

Δημιουργεί την "αστεία σελίδα" που θέλεi και ανεβάζει όλα τα αρχεία της σε έναν φάκελο στο κεντρικό folder. Για παράδειγμα στο www.tositemou.gr/404/

Μετά από αυτό πάει στο error.php που βρίσκεται στο φάκελο του joomla στη διαδρομή templates/system/ και κάτω από την γραμμή

Κώδικας: Επιλογή όλων

defined('_JEXEC') or die;
προσθέτει ένα

Κώδικας: Επιλογή όλων

if (($this->error->getCode()) == '404') {
header('Location: http://www.tositemou.gr/404/index.php');
exit;
}
Αν θέλετε έμπνευση για να φτιάξετε μια πρωτότυπη ή αστεία σελίδα 404, απλά πάρ'τε ιδέες: [google]best 404 error pages[/google]


Απάντηση

Επιστροφή στο “Joomla! γενικά”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 2 επισκέπτες