Adrian
P.
pamiętaj o tym, kto
chce latać musi
skoczyć
Temat: Skrypt forum...
Cześć,obecnie próbuję napisać sobie własne forum, ale mam już problemy, nie wiem jak rozwiązać pewne rzeczy...
Tabele:
forum_categories
category_id
category_name
category_desc
category_order
last_post_id
total_thread
total_posts
forum_posts
post_id
topic_id
post_subject
post_message
post_create_date
post_last_modify
post_count_modify
post_ip
user_id
guest_name
guest_mail
forum_thread
topic_id
category_id
thread_subject
thread_desc
thread_create_date
thread_view
thread_reply
thread_ip
last_post_id
user_id
guest_name
guest_mail
users
user_id
group_id
username
password
users_group
group_id
group_name
pw_read
pw_send
forum_thread_add
forum_thread_delete
forum_thread_edit
forum_post_add
forum_post_delete
forum_post_edit
Zapytaniem:
SELECT cat.category_id, cat.category_name, cat.category_desc, post.post_id, post.post_subject, post.post_create_date, post.guest_name, user.user_id, user.username FROM forum_categories cat LEFT JOIN forum_posts post ON (cat.last_post_id = post.post_id) LEFT JOIN users user ON (post.user_id=user.user_id) ORDER BY cat.category_order ASC
pobieram informacje potrzebne do wyświetlenia podstawowych danych przy kategoriach (id, tytuł, opis, ilość tematów i wypowiedzi w kategorii, nazwę i id użytkownika lub nazwę i maila gościa)
Zapytaniem:
SELECT t.thread_id, t.thread_subject, t.thread_desc, t.thread_create_date, t.thread_view, t.thread_reply, t.guest_name, t.guest_mail, u1.user_id, u1.username, p.guest_name, p.guest_mail, u2.user_id, u2.username FROM forum_thread t LEFT JOIN forum_posts p ON (t.last_post_id=p.post_id) LEFT JOIN users u1 ON (t.user_id=u1.user_id) LEFT JOIN users u2 ON (p.user_id=u2.user_id) WHERE t.category_id=$category ORDER BY p.post_create_date DESC
I tu kończy się moja praca, bo mam problem.
Nie mogę dać na sztywno total_thread i total_posts bo przecież w zależności od uprawnień liczba ta może zmieniać się - jak to rozwiązać?
Chcę zrobić blokadę na wybrane wątki czy kategorie:
- chcę aby wybrane kategorie i wątki w niej były widoczne dla wybranej grupy
- chcę aby wybrane wątki były widoczne dla osób spełniających wymogi (np. x dni na forum (x to ilość ręcznie ustalonych dni), ilość napisanych postów, tylko dla zarejestrowanych)
Dajmy na to że mam takie kategorie:
Regulamin
Nowości ze świata
Nowości z Polski
Czarna lista
VIPy
Gość lub osoba zarejestrowana (group_id=1) widziałby:
Regulamin
Nowości ze Świata
Nowości z Polski
Czarna lista
Osoba zarejestrowana spełniająca wymogi (np. na forum x dni lub należąca do group_id=2) widziałby:
Regulamin
Nowości ze Świata
Nowości z Polski
Czarna lista
VIPy
Po wejściu w Nowości ze Świata osoba niezarejestrowana widziałaby tylko:
Panowie rano, panie po południu - płeć ma swoją porę
Rozpoczął się pogrzeb Vaclava Havla
Wygrał sportowy samochód, a już 6 godzin później...
Osoba zarejestrowana widziałby:
Panowie rano, panie po południu - płeć ma swoją porę
Rozpoczął się pogrzeb Vaclava Havla
Wygrał sportowy samochód, a już 6 godzin później...
Czy masowo usuną silikonowe piersi?
Co robi 60 "sekretarek" św. Mikołaja?
Po wejściu w wybrany temat np w "Wygrał sportowy samochód, a już 6 godzin później..." sprawdzane by było czy dana osoba ma uprawnienia do czytania, pisania i edytowania wpisów.
Jak zrobić coś takiego?
Myślałem żeby stworzyć tabelę
forum_settings
setting_type (1 - kategoria, 2 - wątek)
setting_id (id kategorii lub wątku)
setting_visible (1 - widoczny dla wszystkich, 2 - widoczny dla zarejestrowanych, 3 - widoczny dla wybranych)
Tylko kolejna sprawa co jak np. do danej kategorii będę chciał dać uprawnienia kilku grupom
I najważniejsze jak to połączyć z tamtymi zapytaniami do wyświetlenia?
Macie jakieś pomysły? ;)