PHP Forum Project

Μια περιοχή όπου τα μέλη μας μπορούν να βάζουν τα PHP scripts που έχουν φτιάξει και θέλουν να τα μοιραστούν με τα υπόλοιπα μέλη.

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

Απάντηση
kapoios001
Δημοσιεύσεις: 403
Εγγραφή: 17 Φεβ 2011 12:26

PHP Forum Project

Δημοσίευση από kapoios001 » 01 Σεπ 2011 03:09

Γεια σε όλους!

Έκανα ένα forum open source project. Είναι γραμμένο στην PHP και για βάση δεδομένων χρησιμοποιεί MySQL. Χρησιμοποιώ αντικειμενοστραφή προγραμματισμό (Object Oriented Programming) και τεχνικές που εμφανίζουν τις σελίδες πολύ γρήγορα και κάνουν "οικονομία" στα queries (έτσι όπως το έκανα είναι σαν να έχει 3 μηχανισμούς cache).

Απαιτήσεις
Apache Server
PHP 5.3.5 (τουλάχιστον)
- PHP υποστήριξη GD
- PHP υποστήριξη JSON
MySQL Server version: 5.5.8
MySQL client version: mysqlnd 5.0.7

Μηχανισμοί Cache:
- File cache για select queries
- Στα SELECT statements έχει SELECT SQL_CACHE
- Τα queries που θα τα έτρεχε 2-3 φορές (π.χ. στην σελίδα που βλέπεις ένα topic και έχει να εμφανίσει τα usernames των posters και θες να κάνεις getUsername($user_ID) αυτό αποθηκεύει στη μνήμη για όλα όσα δεδομένα τράβηξε στην σελίδα και αν τα ξαναχρειαστεί τα διαβάζει από την μνήμη. Δηλ. αν μετά έχει κι άλλο μήνυμα από τον χρήστη με ID 1 τότε το function δεν εκτελεί καν SQL query αλλά επιστρέφει κατευθείαν το result.

Δεν έχει κάποιο πρόβλημα με αυτό διότι δεν φορτώνεται ποτέ με πολλά δεδομένα.

Demo μπορείτε να βρείτε εδώ: http://www.ggirtsou.gr/forum

Administrator Login Details:
Admin Username: admin
Admin Password: @AdminMyPass123@#

Download Forum Project

Είναι απλό στη χρήση του και έχω δώσει πολύ μεγάλη έμφαση στην ασφάλεια.

Χαρακτηριστικά:
- Εγγραφή Χρήστη
- Είσοδος Χρήστη
- Αποσύνδεση
- Συχνές Ερωτήσεις
- Αναζήτηση (βάση χρήστη, σε συγκεκριμένο forum ή γενική αναζήτηση παντού)
- Categories (απεριόριστο βάθος n-level)
- Forums (κρυφά φόρουμ, κλειδωμένα φόρουμ)
- Θέματα (δημιουργία, επεξεργασία μετακίνηση, διαγραφή)
- Δημοσιεύσεις (δημιουργία, επεξεργασία, μετακίνηση, διαγραφή)
- Avatar μεγάλη εικόνα και αυτόματη δημιουργία thumbnail με το class του fafos
- Στατιστικά Φόρουμ
- Πολλές γλώσσες (μέχρι στιγμής Αγγλικά και Ελληνικά)
- Ενεργοποίηση λογαριασμού μέσω E-mail
- Αποστολή νέου Κωδικού Ενεργοποίησης
- Ξέχασα τον Κωδικό μου
- Ειδοποίηση με E-mail σε νέο Προσωπικό Μήνυμα
- Εικόνα Επιβεβαίωσης
- Αναγκάζει τους χρήστες να έχουν ισχυρό κωδικό πρόσβασης
- Επεξεργασία Προφίλ
- Προβολή μηνυμάτων από τελευταία επίσκεψη
- MySQL Cache
- Gzip Συμπίεση
- Φιλτράρισμα όλων των δεδομένων
- Υποστήριξη BBcode
- Αυτόματη Δημιουργία Slug για Φόρουμ / κατηγορία
- Αρχείο Εγκατάστασης Φόρουμ (install.php)
- Αποκλεισμένα Ονόματα Χρηστών
- Αναφορά Δημοσίευσης (για προσβλητικό περιεχόμενο κλπ)
- Ενσωμάτωση Google Analytics
- Search Engine Optimization
- Σελιδοποίηση Δημοσιεύσεων, Θεμάτων
- Κείμενο Όρων Χρήσης
- Flood Control (έλεγχος για πολλές ενέργειες ταυτοχρόνως π.χ. πολλά post μέσε σε λίγα δευτερόλεπτα). Το flood control ισχύει σε: posting, report, personal messages
- Στην αποστολή Προσωπικού Μηνύματος στο πεδίο χρήστης μετά τα δύο πρώτα γράμματα εμφανίζεται ένα jquery dropdown με τα username βάσει των δεδομένων που έχεις πληκτρολογήσει (γράψτε ad και θα εμφανίσει admin). Το ίδιο ισχύει και στο search στο πεδίο "Δημοσιεύσεις από χρήστη"
- Απενεργοποίηση Λογαριασμού Χρήστη
- Πρωτότυπη σελίδα προφίλ χρήστη
- Γρήγοροι Σύνδεσμοι για την ευκολότερη μετάβαση στις διάφορες περιοχές του site.
- Παράθεση Δημοσίευσης
- jquery Date Picker για επιλογή ημερομηνιών (π.χ. ημερομηνία γέννησης στο προφίλ)
- Inline editor στα Μη-επιτρεπόμενα ονόματα χρήστη
- Συντονιστές, πολλοί Διαχειριστές (συνολικά έχει 3 levels: εγγεγραμένοι χρήστες, Συντονιστές και Διαχειριστές).

- Όλα τα παραπάνω μπορούν να ρυθμιστούν από τη Διαχειριστική Περιοχή.

Όλα είναι πολύ απλά και εύχρηστα.

Το μόνο που μπορεί να θεωρηθεί ως "ενοχλητικό" πιστεύω ότι θα είναι το "Ισχυρός Κωδικός".

Νομίζω αυτά είναι όλα. Έχει οδηγίες, είναι δωρεάν, προσφέρω υποστήριξη για κάποιο bug που πιθανόν να προκύψει.

Download Forum Project

Μην αλλάξετε τα στοιχεία εισόδου και μην αναστατώσετε το forum επειδή είστε Διαχειριστής. Αν θέλετε δείτε το, αλλά για περισσότερο τεστ δοκιμάστε το στον server σας ή στο localhost σας.

Εγκατάσταση
- Αποσυμπιέστε όλα τα αρχεία και ανεβάστε τα στον server σας.
- Δημιουργία βάσης δεδομένων:
Για να δημιουργήσετε μια βάση δεδομένων με το phpMyAdmin στον server σας ανοίξτε το phpMyAdmin π.χ.: http://example.com/phpMyAdmin

κάντε είσοδο στο phpMyAdmin (το URL μπορεί να διαφέρει - ανάλογα με την εγκατάσταση).

- Δημιουργήστε την βάση δεδομένων γράφοντας στο πεδίο το όνομα της Βάσης.

- Πηγαίνετε με τον browser στο αρχείο εγκατάστασης: your-site.com/forum/install.php

Αρχεία / Δικαιώματα αρχείων

CHMOD 777:
./uploads
./cache/
./cache/sql/

Όταν τελειώσετε με την εγκατάσταση διαγράψτε το db.sql, install.php και readme.txt

Γενικά έχει όλα τα features που πρέπει να έχει ένα κανονικό Forum χωρίς τα περιττά χαζά που καταναλώνουν resources από τον server και την MySQL.

Εύχομαι να σας άρεσε.

Φιλικά,
Γιώργος Γκίρτσου

Άβαταρ μέλους
stevebat
Script Master
Δημοσιεύσεις: 307
Εγγραφή: 05 Αύγ 2009 15:54
Επικοινωνία:

PHP Forum Project

Δημοσίευση από stevebat » 01 Σεπ 2011 10:29

Εμένα μου άρεσε υπερβολικά, όπως και η προηγούμενη δουλειά σου.

Τώρα αν θες 2-3 συμβουλές να σου δώσω για να το μεγαλώσεις λίγο.
Πρώτα για το template ίσως η μπάρες στις φόρμες να σκούρυναν λίγο γιατί με τα βίας κατάφερα να κάνω login μιας και δεν έβρισκα τις μπάρες :-) .
Επίσης θα ήταν καλό αν είχες μια member list τα οποία να γινόταν ταξινόμηση αν γραμμα. Ισως κάποιο μέλος να ψάχνει κάποιο άλλο
Αυτά φυσικά στα δίνω σαν ιδέα αλλά και έτσι να το αφήσεις σκίζει πάλι.

Παρατήρησα ότι δεν δουλεύει η αλλαγή γλώσσας.

Μπράβο και πάλι μπράβο.
Εγώ δεν τα πολύ πάω καλά με την O-O.
ευχαριστούμε πολύ

Άβαταρ μέλους
CyberCr33p
Honorary Member
Δημοσιεύσεις: 3199
Εγγραφή: 06 Νοέμ 1999 01:00
Τοποθεσία: Αθήνα
Επικοινωνία:

PHP Forum Project

Δημοσίευση από CyberCr33p » 01 Σεπ 2011 13:56

Εξαιρετική δουλειά.

kapoios001
Δημοσιεύσεις: 403
Εγγραφή: 17 Φεβ 2011 12:26

PHP Forum Project

Δημοσίευση από kapoios001 » 01 Σεπ 2011 17:47

Ευχαριστώ πολύ για τις απαντήσεις σας!

bouzouste αυτό που λες για τις μπάρες μάλλον εννοείς το border στα inputs που δεν φαίνεται πολύ καλά. Το template όπως βλέπεις είναι από το HTML5webtemplates.co.uk και αν το δεις εδώ θα δεις ότι ήταν πολύ διαφορετικό.

Έκανα αρκετές αλλαγές: το μεγάλωσα επειδή δεν γίνεται τώρα φόρουμ να είναι περιορισμένο σε τόσο μικρό template πρόσθεσα, έκοψα, έραψα και τώρα έκανα μαύρο το border στα inputs.

Πιστεύω ότι φαίνεται καλύτερα τώρα.

Επίσης διόρθωσα ένα μικρό λάθος που είχα στην ελληνική γλώσσα στο forum stats.

Δεν ξέρω γιατί λες ότι δεν δουλεύει η αλλαγή γλώσσας. Σε μένα φαίνεται να δουλεύει μια χαρά. Δεν κολλάει κάπου. Μήπως αν δοκίμαζες να σβήσεις cookies / browser cache?

Αυτό που λες για την member list όντως δεν υπάρχει γιατί αυτό το forum είναι κάπως διαφορετικό από τα άλλα. Δεν θέλω να έχει τα μπιχλιμπίδια που έχουν όλα τα άλλα -αν και τα περισσότερα είναι τα βασικά χαρακτηριστικά του- αλλά αν κάποιος θέλει να βρει κάποιο άλλο μέλος, τότε αυτό θα γίνει μόνο αν θέλει να του στείλει ΠΜ ή αν θέλει να βρει τα post του.

Γι' αυτό υπάρχει η αναζήτηση όπου στο πεδίο "Δημοσιεύσεις μόνο από αυτόν τον χρήστη" αν γράψει τα δύο πρώτα γράμματα θα του εμφανίζει ένα jquery autocomplete με μια λίστα με τα σχετικά username βάσει των δεδομένων που έχει πληκτρολογήσει (αυτό για να δουλέψει θέλει JSON -- ο server που το έχω το demo δεν έχει JSON γι' αυτό δεν δουλεύει).

Το autocomplete φαίνεται στο attachment που βάζω.

Να πω ότι ο κώδικας βρίσκεται online για review για όποιον θέλει να ρίξει μια ματιά: http://ggirtsou.gr/forum-code/source.php

Και πάλι ευχαριστώ για τα καλά σας λόγια,
Γιώργος.
Συνημμένα
pm.png

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

PHP Forum Project

Δημοσίευση από cherouvim » 01 Σεπ 2011 18:25

Πολύ καλό.

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

PHP Forum Project

Δημοσίευση από ThyClub » 01 Σεπ 2011 18:36

Πολύ καλή προσπάθεια!

Υποστηρίζει templates ή τα αλλάζει όλα με διαφορετικά styles?

Άβαταρ μέλους
stevebat
Script Master
Δημοσιεύσεις: 307
Εγγραφή: 05 Αύγ 2009 15:54
Επικοινωνία:

PHP Forum Project

Δημοσίευση από stevebat » 01 Σεπ 2011 18:43

ggirtsou έγραψε:
Αυτό που λες για την member list όντως δεν υπάρχει γιατί αυτό το forum είναι κάπως διαφορετικό από τα άλλα. Δεν θέλω να έχει τα μπιχλιμπίδια που έχουν όλα τα άλλα -αν και τα περισσότερα είναι τα βασικά χαρακτηριστικά του- αλλά αν κάποιος θέλει να βρει κάποιο άλλο μέλος, τότε αυτό θα γίνει μόνο αν θέλει να του στείλει ΠΜ ή αν θέλει να βρει τα post του.

Γι' αυτό υπάρχει η αναζήτηση όπου στο πεδίο "Δημοσιεύσεις μόνο από αυτόν τον χρήστη" αν γράψει τα δύο πρώτα γράμματα θα του εμφανίζει ένα jquery autocomplete με μια λίστα με τα σχετικά username βάσει των δεδομένων που έχει πληκτρολογήσει (αυτό για να δουλέψει θέλει JSON -- ο server που το έχω το demo δεν έχει JSON γι' αυτό δεν δουλεύει).
Τωρα δουλευει η γλωσσα ..
Το auto complete δεν το ειχα προσέξει γιατι ειχα προβολημα στη συνδεση. Εφοσον εχει auto complete ειναι super.

Μπραβο! :P 8)

kapoios001
Δημοσιεύσεις: 403
Εγγραφή: 17 Φεβ 2011 12:26

PHP Forum Project

Δημοσίευση από kapoios001 » 01 Σεπ 2011 19:57

ThyClub έγραψε:Πολύ καλή προσπάθεια!

Υποστηρίζει templates ή τα αλλάζει όλα με διαφορετικά styles?
Υποστηρίζει templates, απλώς σε αυτή την πρώτη έκδοση δεν έχω βάλει άλλα templates εκτός του default γιατί δεν ήθελα να καταναλώσω πολύ χρόνο στην επιλογή χρωμάτων και γενικά στο αισθητικό κομμάτι.

Είναι πολύ εύκολο όμως να κάνεις ένα template: ή επεξεργάζεσαι το ήδη υπάρχων ή δημιουργείς ένα καινούργιο.

Από την βάση στον πίνακα templates κάνεις μια εγγραφή και βάζεις το όνομα του template και πρέπει στον φάκελο /styles να έχεις ένα φάκελο με το όνομα του template. Εκεί μέσα θα πρέπει να έχεις ένα style.css.

Δηλαδή: /style/temp_name/style.css και το φτιάχνεις αναλόγως.

Μετά απ' αυτό κάνεις ότι θες με τις εικόνες (δηλ. βάζεις τις ίδιες εικόνες που έχει στο /style/blue) αλλάζεις χρώματα ώστε να φαίνεται ότι είναι διαφορετικό template.

Επειδή χρησιμοποιώ το jquery UI framework πας στο jquery theme roller, κατεβάζεις στο χρώμα που θες το template (εγώ επέλεξα το start για το μπλε) και επιλέγεις για το framework τα UI Core (Core, Widget, Position), Widgets: Autocomplete, Tabs, Datepicker, Effects: Effects Core, Effect "Highlight"

Μόλις τα κατεβάσεις αυτά δημιουργείς έναν φάκελο μέσα στο /styles ui-<temp_name>/ και εκεί βάζεις το jquery-ui-1.8.16.custom.css.

Το ανοίγεις και βρίσκεις το:

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

/* states and images */
.ui-icon &#123; display&#58; block; text-indent&#58; -99999px; overflow&#58; hidden; background-repeat&#58; no-repeat; &#125;
και το κάνεις

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

/* states and images */
.ui-icon &#123; display&#58;inline-block; vertical-align&#58;middle;text-indent&#58; -99999px; overflow&#58; hidden; background-repeat&#58; no-repeat; &#125;
Αυτό είναι για τα ui-icons-εικονίδια για να εμφανίζονται σωστά.

Μετά οι χρήστες επιλέγουν όποιο template θέλουν για να βλέπουν. Βέβαια αυτό το κομμάτι δεν το έχω υλοποιήσει σε αυτή την έκδοση (φορτώνει πάντα το default template από το settings).

Για να το ορίσεις ως default template πας στην Διαχείριση στις ρυθμίσεις και βάζεις ως default template αυτό που δημιούργησες.

Το μόνο πράγμα που δεν έχει είναι η αυτόματη εγκατάσταση templates και η φόρτωση του template που έχει επιλέξει ο χρήστης.

Θα υλοποιηθεί στην επόμενη έκδοση αν ενδιαφέρει κάποιον.

Γιώργος.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

PHP Forum Project

Δημοσίευση από Rapid-eraser » 01 Σεπ 2011 22:08

thumbs up :)
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

Απάντηση

Επιστροφή στο “PHP τα δικά μας scripts”

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

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