x-ƒ (x_f)

Spameru izcelšana :) 

sestdien, 3.07.2004 @7:09 pm | x-ƒ

Jēgas no šitā visa nekādas, bet tomēr gribu.
Doma ir tāda, ka vēlos kaut kur savā draugu lapā izvadīt mazu sarakstiņu, kurā būtu parādīti to manu draugu vārdi, kuru ierakstu šajā lapā ir visvairāk. Blakus arī norādīts viņu ierakstu skaits. Tas būtu tāds kā lielāko spameru topiņš. :) Nu, piemēram, "gorgona (3)". Tādā veidā.

Esmu ticis šitik tālu, taču nesaprotu, kāpēc tas nestrādā. Ar sakārtošanu dilstošā secībā galā netiku, tāpēc tā nav implementēta. Viens te pieteicās palīdzēt.. :) Lai nu kā, būtu jau labi, bet pagaidām netiek izvadīts nekas. Tikai atverošais un aizverošais <ul>. Es nesaprotu, kur vaina.

Tam būtu jādarbojas tā, ka tiek ņemts katrs ieraksts draugu lapā. Tā rakstītāja vārds ($.entries.poster.username) tiek salīdzināts ar visām asociatīvā string masīva rakstnieki{} atslēgām (kas ir citu username). Ja ir sakritība, tad palielina atbilstošo vērtību par 1 (kas tiek glabāta kā string, tāpēc tur tā pārveidošana turp un atpakaļ). Ja neatrod, tad pievieno jauno vārdu.

function tops(Entry[] entries) "Spamertopiņš" {

# asociatīvais masīvs, kurā likt atrasto rakstu rakstītāju vārdus un rakstu skaitu
# piemēram – "maita" => "2", "antikrists" => "4", ..
var string{} rakstnieki;

# pati darbība, kad pievieno jaunas vai atjauno vecās vērtības masīvā
  foreach var Entry ieraksts($entries) {

    var string kas = $ieraksts.poster.username;
    var string raksti_string;
    var int raksti;

    foreach var string parbaude($rakstnieki){
      if ($parbaude == $kas){ # ir atrasts
        # jāpalielina vērtība atrastajam rakstītājam
        # (zinu, ka šo var īsāk, bet man vaidzēja uzskatāmi)
        $raksti_string = $rakstnieki{$parbaude};
        $raksti = int($raksti_string);
        $raksti++;
        $raksti_string = string($raksti);
        $rakstnieki{$parbaude} = $raksti_string;
      } else { # ja neatrod
        # pievieno jaunās vērtības masīvam
        $rakstnieki{$kas} = string(1); # kā string, viens rakstiņš tomēr sameklēts
      }

    }
  }


# sakārtot dilstošā secībā. not implemented. :)


# izvada rezultātus

var int skaits = 0;
var int limits = 3;  # $*top_skaits

  "<ul>\n";
  foreach var string tops($rakstnieki) {
    # kamēr nav sasniegts top vērtību maksimums (piem, top 3)
    if ($skaits <= $limits){
      # izvada šeit - username (x)
      print "<li>" + $tops + " <small>(" + $rakstnieki{$tops} + ")</small></li>\n";
    } else {
      # nékas
    }
    $skaits++;  # nākošais ieraksts
  }
  "</ul>";

}


#########
## pēc tam tas tiek izsaukts no "FriendsPage::print_body" funkcijas apmēram šādi

function FriendsPage::print_body {

"""<div style="position:absolute; left:25px; top:460px; width:130px; height:85px; z-index:5;">\n""";
  tops($.entries);
"""</div>\n\n""";

# tālāk visa pārējā "FriendsPage::print_body" funkcija..
# ..
  foreach var Entry e ($.entries) {
# ..
    $this->print_entry($e);
# ..
  }

}

(Ņem vērā, ka parasti neviens neizvēlas atbildēt uz pilnīgi anonīmiem komentāriem!)

No:
Lietotājvārds:
Parole:
Ievadi te 'qws' (liidzeklis pret spambotiem):
Temats:
Tematā HTML ir aizliegts
  
Ziņa:

Gandrīz jau aizmirsu pateikt – šis lietotājs ir ieslēdzis IP adrešu noglabāšanu. Operatore Nr. 65.