Elxis CMS Forum

Ελληνικό Forum => Διαχείριση => Topic started by: evkarab on June 15, 2010, 09:48:44

Title: Αρχείο...πως δουλεύει;
Post by: evkarab on June 15, 2010, 09:48:44
Σε τοπική εγκατάσταση κάνω δοκιμές στην αρχειοθέτηση.
Στέλνω κάποια θέματα στο αρχείο και λέω στο module να εμφανίζεται στην αριστερή στήλη.
Ως εδώ όλα καλά.
Φαίνεται πως έχει αρχειοθετήσει θέματα που αφορούν σε τρείς μήνες και έχει φτιάξει και τους συνδέσμους.
Πατώντας όμως πάνω σε ένα σύνδεσμο το σύστημα μου λέει πως δεν υπάρχουν αρχειοθετημένα θέματα για το συγκεκριμένο μήνα.
Αυτό συμβαίνει για όλους τους συνδέσμους που έχουν δημιουργηθεί.
Τι άλλο χρειάζεται να κάνω για να εμφανίζονται τα αρχειοθετημένα;
Θα φορτώνει γρηγορότερα η σελίδα αν τελικά πάνε κάποιοι μήνες στο αρχείο;
Title: Re: Αρχείο...πως δουλεύει;
Post by: ArXoS on June 15, 2010, 14:28:04
Αυτό γενικά και εγώ δεν έχω καταλάβει πως δουλεύει. Είχα ξεκινήσει μάλιστα και θέμα   (https://forum.elxis.org/index.php?topic=4811.0)αλλά χωρίς ανταπόκριση. Φαίνεται δεν χρησιμοποιεί κανείς αρχειοθέτηση. Για το θέμα της ταχύτητας πάντως, υπάρχουν πάρα πολλοί τρόποι να ανεβάσεις τις επιδόσεις σου, από πείραγμα στον server μέχρι και το στήσιμο του elxis. Η αρχειοθέτηση βοηθά από ότι έχουμε συζητήσει και παλιότερα, στο cpu load, όχι στην ταχύτητα
Title: Re: Αρχείο...πως δουλεύει;
Post by: datahell on June 15, 2010, 21:24:52
Το αρχείο έχει νόημα σε site στα οποία μπαίνει πολύ υλικό και χρειαζόμαστε να "ελαφρύνουμε" τις κύριες κατηγορίες.
Φανταστείτε ένα site με ειδήσεις που γράφονται κάθε μέρα 50 άρθρα. Κάποια στιγμή τα άρθρα σε μία κατηγορία μπορεί να φτάσουν τα 1000 (και βάλε). Έτσι γίνεται "βαριά" η πλοήγηση και ο χρήστης χάνεται σε τόνους υλικού που είναι πολύ παλιές και δεν έχουν ιδιαίτερη σημασία πια. Η αρχειοθέτηση αφαιρεί αυτά τα άρθρα από την κύρια κατηγορία και τα μεταφέρει στο αρχείο, που είναι και πάλι κανονικά προσβάσιμα αλλά ζητώνται σπάνια, καθώς είναι παλιές ειδήσεις.

Με την αρχειοθέτηση δεν είναι τόσο το ότι κερδίζουμε σε ταχύτητα όσο το ότι οργανώνουμε καλύτερα το υλικό του ιστοτόπου μας βαηθώντας και εμάς τους ίδους να εντοπίζουμε ευκολότερα τα άρθρα.
Title: Διόρθωση Bug του αρχείου
Post by: datahell on June 15, 2010, 22:01:24
Λοιπόν για την εμφάνιση το έψαξα και υπάρχει bug. Μία μικρή χαζομάρα που κάνει το αρχείο να μην δουλεύει...

Πως θα το διορθώσετε
Αρχείο: components/com_content/content.php
Γραμμή 903
Αλλάξτε αυτό:
$where = $this->_where(-1, $access, $noauth, $id, NULL, $year, $month);
με αυτό:
$where = $this->_where(-1, $access, $noauth, $id, $year, $month);

Γραμμή 1031
Αλλάξτε αυτό:
$where = $this->_where(-2, $access, $noauth, $id, NULL, $year, $month);
με αυτό:
$where = $this->_where(-2, $access, $noauth, $id, $year, $month);

Διορθώνω άμεσα την διανομή του Elxis 2009.2!
Title: Re: Αρχείο...πως δουλεύει;
Post by: evkarab on June 19, 2010, 11:02:25
Έκανα τις αλλαγές και όλα καλά...εκτός από μιά λεπτομέρεια που μου διαφεύγει.
Αρχειοθετώ μερικά άρθρα, δημοσιεύω το αρχείο (αριστερά ας πούμε), φαίνονται οι μήνες και πατώντας πανω στο μήνα γίνεται το εξής: Τα αποτελέσματα εμφανίζονται στο πάτο της σελίδας. Μαζί με ό,τι είναι στην αρχική σελίδα. Πως να το κάνω να εμφανίζονται μόνα τους;
Το ίδιο πρόβλημα με την αναζήτηση το έλυσα με ένα τρίκ που δεν μπορώ να κάνω τώρα.
Στην αναζήτηση έκανα ένα σύνδεσμο προς το component search καί του είπα να εμφανίζεται σε ενα μενού κρυφό, έτσι έδωσα εντολή στο mod_search να εμφανίζει τα αποτελέσματα μόνο σ'αυτό το μενού.
Αυτό δεν μπορώ να το κάνω με το αρχείο. Έχετε καμιά ιδέα; Χρησιμοποιώ το tpl philoxenia.
Title: Re: Αρχείο...πως δουλεύει;
Post by: datahell on June 20, 2010, 20:43:33
Πρέπει να φτιάξεις ένα σύνδεσμο προς το αρχείο. Υπάρχουν 2 τύποι τέτοιων συνδέσμων:
1. Ενότητα περιεχομένου
2. Κατηγορία περιεχομένου
Title: Re: Αρχείο...πως δουλεύει;
Post by: evkarab on June 20, 2010, 20:55:07
Αυτό έχω κάνει προς το παρόν αλλά μου αρέσει να εμφανίζεται το mod_archive αριστερά ή δεξία με τη λίστα των μηνών που περιέχουν άρθρα.
Title: Re: Αρχείο...πως δουλεύει;
Post by: evkarab on November 06, 2010, 18:04:00
Μανία που με έχει πιάσει με το αρχείο ε;
Είναι δυνατόν όταν θέτουμε σε ένα άρθρο ημερομηνία λήξης αυτό να πάει αυτόματα στο αρχείο;
Υπάρχει κανένα κόλπο για αυτή τη δουλειά;
Title: Re: Αρχείο...πως δουλεύει;
Post by: nikos on November 07, 2010, 09:12:21
Μανία που με έχει πιάσει με το αρχείο ε;
Είναι δυνατόν όταν θέτουμε σε ένα άρθρο ημερομηνία λήξης αυτό να πάει αυτόματα στο αρχείο;
Υπάρχει κανένα κόλπο για αυτή τη δουλειά;

Λέγοντας ημερομηνία λήξης προφανώς εννοείς την ημερομηνία παύσης δημοσίευσης του άρθρου, οπότε όπως αντιλαμβάνεσαι το συγκεκριμένο άρθρο μετά το πέρας της ημερομηνίας και ώρας που θέτεις στις παραμέτρους, σταματά να είναι δημοσιευμένο και δεν μπορεί η λειτουργία αυτή να συνδεθεί με την μεταφορά του στο αρχείο και μάλιστα δημοσιευμένο, όπως θα το επιθυμούσες.
Title: Re: Αρχείο...πως δουλεύει;
Post by: datahell on November 09, 2010, 22:20:38
Ένα php script χρειάζεσε που να εκτελείται με cron jobs (1-2 φορές την ημέρα είναι αρκετό) και θα ελέγχει για άρθρα που έχουν λήξει. Όταν βρίσκει τέτοια θα τα μεταφέρει στο αρχείο και θα βάζει την ημερομηνία παύσης δημοσιευσης και πάλι στο άπειρο (2060-01-01 00:00:00).

Ένα άρθρο χαρακτηρίζεται ως αρχειοθετημένο όταν η τιμή της στήλης "state" στον πίνακα "elx_content" είναι "-1".

state = 1 ---> δημοσιευμένο
state = 0 ---> μη δημοσιευμένο
state = -1 ---> αρχειοθετημένο

Code: [Select]
UPDATE elx_content SET state=-1, publish_down='2060-01-01 00:00:00' WHERE state='0';Το παραπάνω θα σου μεταφέρει ΟΛΑ τα αποδημοσιευμένα άρθρα στο αρχείο. Αν δεν θες όλα πρόσθεσε περισσότερα κριτήρια στο query.
Title: Re: Αρχείο...πως δουλεύει;
Post by: evkarab on November 28, 2010, 11:46:03
Ένα php script χρειάζεσε που να εκτελείται με cron jobs (1-2 φορές την ημέρα είναι αρκετό) και θα ελέγχει για άρθρα που έχουν λήξει. Όταν βρίσκει τέτοια θα τα μεταφέρει στο αρχείο και θα βάζει την ημερομηνία παύσης δημοσιευσης και πάλι στο άπειρο (2060-01-01 00:00:00).

Ένα άρθρο χαρακτηρίζεται ως αρχειοθετημένο όταν η τιμή της στήλης "state" στον πίνακα "elx_content" είναι "-1".

state = 1 ---> δημοσιευμένο
state = 0 ---> μη δημοσιευμένο
state = -1 ---> αρχειοθετημένο

Code: [Select]
UPDATE elx_content SET state=-1, publish_down='2060-01-01 00:00:00' WHERE state='0';Το παραπάνω θα σου μεταφέρει ΟΛΑ τα αποδημοσιευμένα άρθρα στο αρχείο. Αν δεν θες όλα πρόσθεσε περισσότερα κριτήρια στο query.

Ωραία...
Ας πούμε ότι κατάφερα και έφτιαξα αυτό το script, πού πρέπει να τοποθετηθεί;


Κύριοι συγχωρέστε με αλλά είμαι εντελώς αρχάριος στον προγραμματισμό. Μπορεί κάποιος να κάνει έλεγχο στο αρχείο;

[attachment deleted by admin]
Title: Re: Αρχείο...πως δουλεύει;
Post by: datahell on November 28, 2010, 13:30:10
Μπορείς να το βάλεις οπουδήποτε μέσα στο www φάκελο ή ακόμα και πάνω από αυτόν. Δεν έχει καμία σημασία.
Αυτό που έχει σημασία μετά είναι να βάλεις ένα cron job (χρονικά προγραμματισμένη εργασία) που να τρέχει αυτό το αρχείο 1-2 φορές την ημέρα.
Όλα τα control panel έχουν υποστήριξη cron jobs και αν δεν έχει το δικό σου μπορείς να ζητήσεις σε αυτόν που σε φιλοξενεί να στο προσθέσει χειροκίνητα. Αν το υποστηρίζει το control panel σου είναι πολύ εύκολο να το προσθέσεις και δεν θέλει ιδιαίτερες γνώσεις. Αλλιώς μπορείς να ψάξεις στο internet και θα βρεις πολλές οδηγίες.

Παράδειγμα:
http://www.graecus.net/?p=178 (http://www.graecus.net/?p=178)
και εδώ:
http://www.htmlcenter.com/blog/running-php-scripts-with-cron/ (http://www.htmlcenter.com/blog/running-php-scripts-with-cron/)

Για χειροκίνητη επεξεργασία του crontab γράφουμε στο shell: crontab -e

πχ για να τρέχει κάθε 12 ώρες στο 30ο λεπτό:
30 */12 * * * php /srv/www/clients/clientX/webY/web/my_cron_file.php

Πριν προσθέσεις το cron job βεβαιώσου πως το script σου τρέχει σωστά και δεν έχει λάθη. Ανέβασέ το στο site σου και τρέξτο από τον browser. ΠΧ:
http://www.example.com/my_cron_file.php
Κοίταξε μετά την βάση σου, δούλεψε σωστά; Ενημερώθηκαν σωστά οι τιμές; Σου έβγαλε κάνα λάθος;
Title: Re: Αρχείο...πως δουλεύει;
Post by: evkarab on November 28, 2010, 19:02:06
Ευχαριστώ για τους συνδέσμους. Είναι λίγο πιό απλοϊκά γραμμένοι από αυτά που βρήκα εγώ.
Θα το παλέψω (τοπικά πρώτα) και "όποιον πάρει ο χάρος"  ;D (στραβάδι γαρ)