Strona 1 z 1
Ograniczenie odpowiedzi w tematach
: 05 stycznia 2009, 18:57
autor: Belial
Witam
Nie wiem jak ograniczyć ilość odpowiedzi w danym temacie. Ktoś zakłada temat, inni mogą odpowiadać, ale tylko jeden raz. Można modyfikować swoją wypowiedź, ale nie można dodać nowej. Coś na zasadzie udzielenia jednorazowej pomocy - bez dyskusji. Oczywiście można tworzyć dowolną ilość tematów i jednorazowo odpisywać we wszystkich. Szukam tego i nie mogę znaleźć.
Pozdrawiam i z góry dziękuję za chęć pomocy

Re: Ograniczenie odpowiedzi w tematach
: 05 stycznia 2009, 21:28
autor: Belial
W skrócie chodzi o to, żeby można było tylko jeden raz odpisać w danym temacie.
Re: Ograniczenie odpowiedzi w tematach
: 06 stycznia 2009, 15:53
autor: daroPL
Przenoszę do Fora modyfikacji -> Poszukiwania.
Spróbuj tego:
otwórz
posting.php
znajdź:
Kod: Zaznacz cały
if (!$is_authed)
{
$check_auth = ($mode == 'quote') ? 'reply' : $mode;
przed tym dodaj:
Kod: Zaznacz cały
$sql = 'SELECT COUNT(post_id) as posts
FROM ' . POSTS_TABLE . '
WHERE topic_id = ' . $topic_id;
$result = $db->sql_query($sql);
$posts = $db->sql_fetchfield('posts');
if (in_array($mode, array('reply', 'quote')) && $posts == 2)
{
trigger_error('MAX_REPLIES');
}
W tym wypadku WSZĘDZIE będzie obowiązywać ograniczenia do 1 odpowiedzi w temacie, aby zrobić to dla konkretnych forów zamiast kodu powyżej wklej:
Kod: Zaznacz cały
$sql = 'SELECT COUNT(post_id) as posts
FROM ' . POSTS_TABLE . '
WHERE topic_id = ' . $topic_id;
$result = $db->sql_query($sql);
$posts = $db->sql_fetchfield('posts');
if (in_array($mode, array('reply', 'quote')) && $posts == 2 && in_array($forum_id, array(ID_pierwszego_forum, ID_drugiego_forum, ID_trzeciego_forum_itd)))
{
trigger_error('MAX_REPLIES');
}
ID_pierwszego_forum, ID_drugiego_forum, ID_trzeciego_forum_itd powinno wyglądać np. tak:
1,6,23,31
Na koniec (w obu omówionych powyżej przypadkach) w pliku
language/pl/posting.php
na końcu pliku przed
dodaj:
Kod: Zaznacz cały
'MAX_REPLIES' => 'W jednym temacie może pojawić się tylko jedna odpowiedź.',
Kod pisany bez testowania więc nie musi działać. Proszę o informacje czy wszystko tak jak trzeba.
Re: Ograniczenie odpowiedzi w tematach
: 07 stycznia 2009, 03:08
autor: Belial
Działa prawie dobrze.
Po założeniu tematu można w nim odpisać jeden raz, ale tyczy się to wszystkich. Jedna osoba zakłada temat, inna odpisuje i na tym się kończy. Nikt więcej nie może pisać. Nie wiem, czy się dobrze zrozumieliśmy, ale chodziło mi o to, żeby każdy mógł pisać po jednej odpowiedzi. Teraz wygląda - kto pierwszy, ten lepszy - ciach i temat zamknięty
W każdym razie odpaliło od strzała i za to dziękuję. Mogę liczyć na poprawkę?
ps
Dla lepszego zrozumienia
'MAX_REPLIES' => 'Twój limit odpowiedzi w tym temacie został wyczerpany.',
Re: Ograniczenie odpowiedzi w tematach
: 07 stycznia 2009, 15:22
autor: daroPL
Ok. W takim razie znajdź:
Kod: Zaznacz cały
if (!$is_authed)
{
$check_auth = ($mode == 'quote') ? 'reply' : $mode;
przed tym dodaj:
Kod: Zaznacz cały
$sql = 'SELECT COUNT(post_id) as posts
FROM ' . POSTS_TABLE . '
WHERE topic_id = ' . $topic_id . '
AND poster_id = ' . $user->data['user_id'];
$result = $db->sql_query($sql);
$posts = $db->sql_fetchfield('posts');
if (in_array($mode, array('reply', 'quote')) && $posts)
{
trigger_error('MAX_REPLIES');
}
W tym wypadku WSZĘDZIE będzie obowiązywać ograniczenia do 1 odpowiedzi w temacie, aby zrobić to dla konkretnych forów zamiast kodu powyżej wklej:
Kod: Zaznacz cały
$sql = 'SELECT COUNT(post_id) as posts
FROM ' . POSTS_TABLE . '
WHERE topic_id = ' . $topic_id . '
AND poster_id = ' . $user->data['user_id'];
$result = $db->sql_query($sql);
$posts = $db->sql_fetchfield('posts');
if (in_array($mode, array('reply', 'quote')) && $posts && in_array($forum_id, array(ID_pierwszego_forum, ID_drugiego_forum, ID_trzeciego_forum_itd)))
{
trigger_error('MAX_REPLIES');
}
ID_pierwszego_forum, ID_drugiego_forum, ID_trzeciego_forum_itd powinno wyglądać np. tak:
1,6,23,31
Na koniec (w obu omówionych powyżej przypadkach) w pliku
language/pl/posting.php
na końcu pliku przed
dodaj
Kod: Zaznacz cały
'MAX_REPLIES' => 'Możesz udzielić tylko jednej odpowiedzi w tematach na tym forum.',
Re: Ograniczenie odpowiedzi w tematach
: 09 marca 2009, 09:20
autor: Belial
Witam po dłuższej nieobecności.
Sprawdziłem drugą wersję kodu i znowu ruszyła bez problemu, co mnie nie zdziwiło

Ucieszony powodzeniem zacząłem rozbudowywać swoje forum i w chwili obecnej mam:
5 głównych kategorii
10 podkategorii
65 pod-podkategorii
w tym ponad 950 for
Przed rozbudową mozolnie dopisywałem ID poszczególnych for, ale z czasem stało się to na tyle uciążliwe, że postanowiłem jeszcze raz poprosić tutaj o pomoc.
W związku z tym mam pytanie. Jak zmodyfikować powyższy kod, żeby można było podać ID kategorii (nie forum), i żeby ograniczenia odpowiedzi dotyczyły wówczas całego drzewa w dół.
W powyższym wypadku, po wpisaniu ID czterech z pięciu głównych kategorii, miałbym ustawione wszystkie fora. Jedna z głównych kategorii zostaje bez ograniczeń dla normalnej dyskusji.
Dziękuję i pozdrawiam.
Re: Ograniczenie odpowiedzi w tematach
: 11 kwietnia 2009, 09:53
autor: Belial
Witam
Jak zmodyfikować powyższy kod, żeby działał odwrotnie? Miałby blokować całe forum, a po podaniu ID_forum wyłączałby ten temat z ograniczenia.
Dużo z tym jest pracy?
Dzięki.
Re: Ograniczenie odpowiedzi w tematach
: 12 maja 2009, 10:27
autor: Belial
Witam ponownie

Znajdzie się chętny, który odpłatnie dokończy ze mną ten wątek?