• 04-09-2009, 16:23:54
    #1
    Birçok arkadaşımızın ihtiyacı olan (random) etiket renklendirmeyi paylaşıyorum. Umarım işinize yarar.
    Yardımları için Dakota arkadaşımıza teşekkürler.


    Bu kodu "functions.php" ye etiket sistemi kodlarından önce ekleyin;
     //rasgele etiket renklendirme 
    function randchar($length = 8, $range = "anc", $case = 'm') 
    { 
        $str = null; 
        if (gettype($length) != "integer") 
                $length = 8; 
    
        // determine character range 
        switch (TRUE) { 
        case ("abc" == $range || "alpha" == $range || "alphabetic" == $range):   // alphabetic 
            $minval = 2; $maxval = 3; 
            break; 
        case ("dmc" == $range || "color" == $range):    // color: decimal 
        case ("hxc" == $range || "hexcolor" == $range): // color: hexadecimal 
            $minval = 5; $maxval = 5; 
            if ($length > 24) $length = 24; 
            $depth  = $length; 
            $length = 6; 
            break; 
        case ("dmg" == $range || "gray" == $range):     // gray: decimal 
        case ("hxg" == $range || "hexgray" == $range):  // gray: hexadecimal 
            $minval = 5; $maxval = 5; 
            if ($length > 24) $length = 24; 
            $depth  = $length; 
            $length = 2; 
            break; 
        case ("hxd" == $range || "hex" == $range || "hexadecimal" == $range):    // hexadecimal 
            $minval = 5; $maxval = 5; 
            break; 
        case ("nmc" == $range || "num" == $range || "numeric" == $range):        // numeric 
            $minval = 1; $maxval = 1; 
            break; 
        case ("anc" == $range || "alnum" == $range || "alphanumeric" == $range): // alphanumeric 
        default :   // alphanumeric 
            $minval = 1; $maxval = 4; 
            break; 
        } 
    
        // build string 
        for ($i = 0;$i < $length;$i++) { 
            switch (@rand($minval, $maxval)) { 
            case 1: $str .= chr(rand(48, 57));  // 0-9 
                break; 
            case 2: $str .= chr(rand(97, 122)); // a-z 
                break; 
            case 3: $str .= chr(rand(65, 90));  // A-Z 
                break; 
            case 4: $str .= chr(rand(48, 57));  // 0-9 
                break; 
            case 5: $str .= dechex(rand(0,15)); // 0-15 
                    break; 
            } 
        } 
    
        // procedure for color values 
        switch (TRUE) { 
        case ("dmc" == $range || "color" == $range): 
        case ("dmg" == $range || "gray" == $range): 
        case ("hxc" == $range || "hexcolor" == $range): 
        case ("hxg" == $range || "hexgray" == $range): 
            $clrs  = chunk_split($str,2,' ');      // space delimit color value pairs 
            $clrs  = explode(' ',trim($clrs));     // load color value pairs into array 
            $bpclr = floor($depth/3);              // set number of bits per color value 
            $step  = (256/pow(2,$bpclr));          // calculate step value for quantizing 
            foreach ($clrs as $key => $clr) { 
                $clrs[$key] = hexdec($clr);        // convert to decimal for manipulation 
                $clr = round($clrs[$key] / $step); // calculate quantizing (Q) factor 
                $clr = $clr * $step;               // multiply color value by Q factor 
                $clr = $clr - floor($clr/256);     // adjust to maintain bounds 0-256 
                $clrs[$key] = $clr;                // replace original color value pair 
            } 
    
            // triple gray value 
            switch (TRUE) { 
            case ("dmg" == $range || "gray" == $range): 
            case ("hxg" == $range || "hexgray" == $range): 
                $clrs = array_pad($clrs,3,$clrs[0]); 
                break; 
            } 
    
            // comma delimit decimal color values 
            switch (TRUE) { 
            case ("dmc" == $range || "color" == $range): // r,g,b 
            case ("dmg" == $range || "gray" == $range):  // r,g,b 
                $str = implode(",", $clrs); 
                break; 
            case ("hxc" == $range || "hexcolor" == $range):  // rrggbb 
            case ("hxg" == $range || "hexgray" == $range):   // rrggbb 
                $str =  ( 
                     sprintf("%02x",$clrs[0]) 
                    .sprintf("%02x",$clrs[1]) 
                    .sprintf("%02x",$clrs[2]) 
                    ); 
                break; 
            } 
        break; 
        } 
    
        // set character case 
        switch (TRUE) { 
        case ('l' == $case || "lower" == $case): // lower case 
            $str = strtolower($str); 
            break; 
        case ('u' == $case || "upper" == $case): // upper case 
            $str = strtoupper($str); 
            break; 
    	} 
        return $str; 
    }
    çalıştırmak için ise "functions.php" deki bu kodu;
    <a href="<?=$siteurl?>/etiket/<?=$deger?>.html"><?=$deger?></a>
    bu kod ile değiştirin;

    <a href="<?=$siteurl?>/etiket/<?=$deger?>.html"> <font color="#<? echo randchar(10,"hexcolor"); ?>"><?=$deger?> </font>  </a>
    Not: etiket sisteminde link yapısını değiştirmişseniz en altta verdiğim kodu kendi sitenize göre düzenlemeniz gerekir.

    etiket sistemi çalışan demo site: Oyun Oyna
  • 05-09-2009, 15:24:55
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    teşekkürler
  • 06-09-2009, 00:08:47
    #3
    tek teşekkürde senden geldi hocam. ben tşk ederim
  • 06-09-2009, 01:31:01
    #4
    teşekkürler hocam paylaşım için onArcade kullanıcılarının işine yarayacaktır
  • 06-09-2009, 03:04:13
    #5
    teşekkürler etiketler rengarek renkkörü olmama rağmen güzeller
  • 06-09-2009, 18:09:25
    #6
    surikata adlı üyeden alıntı: mesajı görüntüle
    teşekkürler etiketler rengarek renkkörü olmama rağmen güzeller
    renk isimleri ingilizce şekilde bulunmakta zaten. renkleri üstteki koddan deneme yanılma yolu ile değiştirebilirsiniz.


    yorumlar için teşekkürler
  • 06-09-2009, 22:30:24
    #7
    Üyeliği durduruldu
    teşekkür ederim hocam ,