iBPlanet.pl

Witaj Gościu ( Zaloguj | Rejestruj )

 
Reply to this topicStart new topic
> Usuwanie/łączenie postów
Bazyl
post nie, 18 maj 2008 - 16:59
Post #1


Początkujący
*

Grupa: Użytkownicy
Postów: 5
Dołączył: czw, 15 maj 08
Skąd: Lublin
Korzystam z IPB 2.0




Gdy usuwam lub łącze posty, to liczba pozostaje niezmienna. Powinna się zmniejszać. Czy da się to jakoś ustawić, czy trzeba grzebać w kodzie ?
Go to the top of the page
 
+Quote Post
Bazyl
post pon, 19 maj 2008 - 09:33
Post #2


Początkujący
*

Grupa: Użytkownicy
Postów: 5
Dołączył: czw, 15 maj 08
Skąd: Lublin
Korzystam z IPB 2.0




Może źle to ująłem smile.gif
Ale biorąc na logikę powinna ta liczba się zmniejszać. Kiedy użytkownik np kasuje posty...
Czy da się coś z tym zrobić ??
Go to the top of the page
 
+Quote Post
Spanner
post pon, 19 maj 2008 - 16:31
Post #3


Ekspert
****

Grupa: Użytkownicy
Postów: 357
Dołączył: pią, 16 gru 05
Skąd: KrK
Korzystam z IPB 3.0




dostępne nie są, ale skoro napisałem do 2.3 dla kilku for to żaden problem, żeby napisać do 2.0 o czym napisałem na swoim forum @Bazylowi już


--------------------
Go to the top of the page
 
+Quote Post
Bazyl
post wto, 20 maj 2008 - 09:44
Post #4


Początkujący
*

Grupa: Użytkownicy
Postów: 5
Dołączył: czw, 15 maj 08
Skąd: Lublin
Korzystam z IPB 2.0




Wiem, że do 1.3 był taki mod, więc zapytałem tylko czy do 2.0 teraz jest.
Go to the top of the page
 
+Quote Post
mirc
post nie, 25 maj 2008 - 00:07
Post #5


master
Ikona grupy

Grupa: Administratorzy
Postów: 792
Dołączył: śro, 14 gru 05
Skąd: szczecin




przez to ze istnieje takie cos jak kosz sprawa sie skomplikowala troche



--------------------
Insanity: doing the same thing over and over again and expecting different results.
Go to the top of the page
 
+Quote Post
Spanner
post nie, 25 maj 2008 - 07:19
Post #6


Ekspert
****

Grupa: Użytkownicy
Postów: 357
Dołączył: pią, 16 gru 05
Skąd: KrK
Korzystam z IPB 3.0




niby tak, ale nie do końca. usunięcie do kosza to tak jakby przesunięcie tematu w inny dział, dopiero po usunięciu z kosza temat jest całkowicie usuwany z bazy i przy takiej operacji dopiero działa moja modyfikacja (mniej więcej, bo jeszcze musze poprawić jak się usuwa cały temat, tożebyczyściło wszystkim liczniki, a ja zrobiłem bardziej do jednego posta jak sie usuwa)


--------------------
Go to the top of the page
 
+Quote Post
Bazyl
post nie, 25 maj 2008 - 16:01
Post #7


Początkujący
*

Grupa: Użytkownicy
Postów: 5
Dołączył: czw, 15 maj 08
Skąd: Lublin
Korzystam z IPB 2.0




Hmm... Czyli chcesz Spanner powiedzieć, że będzie taki mod ?
Go to the top of the page
 
+Quote Post
mirc
post nie, 25 maj 2008 - 23:31
Post #8


master
Ikona grupy

Grupa: Administratorzy
Postów: 792
Dołączył: śro, 14 gru 05
Skąd: szczecin




jak piszesz moda to uwzglednij jeszcze opcje kasowania posta przez autora bo to nie przechodzi przez kosz tylko odrazu jest kasowane, a przynajmniej tak jest w ustawieniach standardowych


kasowanie duzej ilosci postow (czyt. tematu calego) jest skomplokowana operacja dla tego moda i spowoduje masakryczny wzrost zapytan do bazy. poniewaz dla kazdego posta trzeba dokonac dekrementacji licznika a nie mozna tego w prosty sposob zagregowac do malej liczby zapytan

pozdro


--------------------
Insanity: doing the same thing over and over again and expecting different results.
Go to the top of the page
 
+Quote Post
Spanner
post pon, 26 maj 2008 - 05:41
Post #9


Ekspert
****

Grupa: Użytkownicy
Postów: 357
Dołączył: pią, 16 gru 05
Skąd: KrK
Korzystam z IPB 3.0




@Bazyl, tak ale dla ipb 2.3.x

@mirc wiem własnie z tymi zapytaniami i dlategoto nie zostało uwzględnione w pierwszej wersji moda, ale może uda mi się to załatwić przy usuwaniu tematu, bo kasując temat kasujesz także każdego posta z osobna, wiec można zrobić update bazy danych 2 tabel naraz


--------------------
Go to the top of the page
 
+Quote Post
mirc
post pon, 26 maj 2008 - 15:31
Post #10


master
Ikona grupy

Grupa: Administratorzy
Postów: 792
Dołączył: śro, 14 gru 05
Skąd: szczecin




Cytat(Spanner @ pon, 26 maj 2008 - 06:41) *
kasując temat kasujesz także każdego posta z osobna, wiec można zrobić update bazy danych 2 tabel naraz
nie stety nie jest tak jak myslisz, wszystkie posty z tematu kasowane sa jednym zapytaniem
Kod
    function topic_delete($id, $nostats=0)
{
(...)
$this->ipsclass->DB->simple_exec_query( array( 'delete' => 'posts', 'where' => "topic_id".$tid ) );
(...)
}
plik lib/func_mod.php co jest w miare logiczne bo nie obciaza bazy
natomias do tego moda mozna by w ostatecznosci zrobic cos takiego ze przed kasowaniem robimy
SQL
select author_id, count(*) as ile from sg1_posts where topic_id $tid group by author_id
ale to nadal nie niweluje tego ze przy duzych postach mamy duzo zapytan wiec jest jeszcze motyw z pogrupowaniem wyniku tego zapytania na userow o tej samej liczbie postow co zmniejszy nam ilosc zapytan drastycznie

po krotkich przemysleniach oto co nastepuje: w pliku lib/func_mod.php wstawic w function topic_delete($id, $nostats=0) wstawic ten kod
Kod
        //-----------------------------------------
        // mirc decrease post count delete topic mod
        //-----------------------------------------
        
        $this->ipsclass->DB->simple_construct( array( 'select' => 'author_id, count(*) as ile', 'from' => 'posts', 'where' => "topic_id".$tid. " group by author_id" ) );
        $this->ipsclass->DB->simple_exec();
        
        while ( $r = $this->ipsclass->DB->fetch_row() )
        {
            $autors[ $r['ile'] ][] = $r['author_id'];
        }
        
        foreach($autors as $k => $v)
        {
            $ids = implode(',',$v);
            $this->ipsclass->DB->query("UPDATE ibf_members SET posts=posts - '$k' where id IN($ids)");
            
        }

przed
Kod
        //-----------------------------------------
        // Remove the posts
        //-----------------------------------------
        
        $this->ipsclass->DB->simple_exec_query( array( 'delete' => 'posts', 'where' => "topic_id".$tid ) );

i mamy dekrementowanie licznika postow, radze przetestowac przed instalacja

Cytat
This program comes with ABSOLUTELY NO WARRANTY


EDIT:
@Spanner milo bedzie jak mnie w creditsach do swojego moda umiescisz wink.gif

Ten post edytował mirc pon, 26 maj 2008 - 15:41
Powód edycji: brak powodu


--------------------
Insanity: doing the same thing over and over again and expecting different results.
Go to the top of the page
 
+Quote Post
Bazyl
post pon, 26 maj 2008 - 17:26
Post #11


Początkujący
*

Grupa: Użytkownicy
Postów: 5
Dołączył: czw, 15 maj 08
Skąd: Lublin
Korzystam z IPB 2.0




Szkoda, że tylko do 2.3.x :/
Go to the top of the page
 
+Quote Post
Spanner
post pon, 26 maj 2008 - 19:05
Post #12


Ekspert
****

Grupa: Użytkownicy
Postów: 357
Dołączył: pią, 16 gru 05
Skąd: KrK
Korzystam z IPB 3.0




Cytat(mirc @ pon, 26 maj 2008 - 16:31) *
@Spanner milo bedzie jak mnie w creditsach do swojego moda umiescisz wink.gif



Jasne że tak, każdą pomoc trzeba nagrodzić w jakiś sposób smile.gif

Pozatym jak chcesz to razem zawsze możemy skrobnąć coś wypaśnego wink.gif


--------------------
Go to the top of the page
 
+Quote Post
mirc
post pon, 26 maj 2008 - 21:45
Post #13


master
Ikona grupy

Grupa: Administratorzy
Postów: 792
Dołączył: śro, 14 gru 05
Skąd: szczecin




jak cos ciekawego masz na mysli to nie widze problemu


--------------------
Insanity: doing the same thing over and over again and expecting different results.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: wtorek, 22 maj 2012 - 02:07