x-ƒ (x_f)

Birku mākonis

piektdien, 8.02.2013 @10:42 am | x-ƒ ([info]style)

Sagribējās savā žūrnālā mākoni, apskatījos kodu, kas bija citam webprojektam, ātri pārrakstīju to uz S2.

    var int max_size = 280; # max font size in %
    var int min_size = 80; # min font size in %

    # get the largest and smallest array values
    var int max_qty = 0;
    var int min_qty = 0;

    var TagDetail[] tags = $this->visible_tag_list();

    foreach var TagDetail tag($tags) {
      if ($tag.use_count > $max_qty) {
        $max_qty = $tag.use_count;
      }
      if ($tag.use_count < $min_qty) {
        $min_qty = $tag.use_count;
      }
    }

    # find the range of values
    var int spread = $max_qty - $min_qty;
    if ($spread == 0) { # we don't want to divide by zero
      $spread = 1;
    }

    # determine the font-size increment
    # this is the increase per tag quantity (times used)
    var int step = ($max_size - $min_size) / $spread;
  
    "<div id='tag-cloud'>";
    foreach var TagDetail tag($tags) {
      if ($tag.use_count > 0) {
        var int size = $min_size + (($tag.use_count - $min_qty) * $step);
        
        "<a href='$tag.url' title='$tag.name ($tag.use_count)'
          style='font-size: ${size}%;'>$tag.name</a>\n";
      }
    }
    "</div>";

To var ielikt Page::print() vai kur nu labāk gribas, un tas arī viss.

Vienīgais, par ko neesmu sajūsmā, ka netiek automātiski šķirots, kuras birkas ir jārāda publiski un kuras ne. Piemēram, ja viena birka ir lietota divreiz – publiskā ierakstā un privātā ierakstā, tad tā skaitīsies lietota divreiz, un vienalga, vai lapu skatās jebkurš, vai arī es (iežurnalējies). Būtu forši, ja katram lapas apskatītājam būtu redzams precīzs saraksts ar pareiziem skaitļiem atkarībā no tā, kas viņš ir – jebkurš, draugs vai žūrnāla īpašnieks.