Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 9th, 2012  |  syntax: PHP  |  size: 8.26 KB  |  hits: 22  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. function generate_lists($bukva)
  2. {
  3.   function paginator($href='', $page_href='', $p=0,  $all_count=0, $rpp=0, $print=true)
  4.   {
  5.     $p = abs($p);
  6.     if ($p==0) $p = 1;
  7.  
  8.     $rpp = abs($rpp);
  9.     if ($rpp==0) $rpp = 10;
  10.  
  11.     $all_count = abs($all_count);
  12.     if ($all_count == 0) return;
  13.  
  14.     $all_count = ceil($all_count/$rpp);
  15.     if ($p>$all_count) $p = $all_count;
  16.     if ($all_count<2) return '';
  17.  
  18.     $_range = 5;
  19.    
  20.     $res_ = '';
  21.  
  22.     if ($all_count > 1)
  23.     {
  24.       if ($p > 1)
  25.       {
  26.         $prevpage = $p - 1;
  27.         $t = sprintf($page_href, $prevpage);
  28.         if ( $prevpage == 1 ) $t = '';
  29.         $res_ .= sprintf('<li><a class="page" href="'.$href.'">«</a></li>', $t);
  30.       }
  31.  
  32.       for ($i = 1; $i < $all_count+1; $i++)
  33.       {
  34.         if ($i == $p)
  35.         {                        
  36.           $res_ .= '<li><span class="current">'.$i.'</span></li>';
  37.         }
  38.         else
  39.         {
  40.           if ((($i > ($p - $_range)) && ($i < ($p + $_range))) OR ($i == $all_count) || ($i == 1))
  41.           {
  42.             $t = sprintf($page_href, $i);
  43.             if ( $i == 1 ) $t = '';
  44.             $res_ .= sprintf('<li><a class="page" href="'.$href.'">'.$i.'</a></li>', $t);
  45.           }
  46.         }
  47.  
  48.         if ($i < $all_count)
  49.         {
  50.           if (($p > $_range+1) && ($i == 1)) $res_.="<li><span>...</span></li>";
  51.           if (($p < ($all_count - $this->range-1)) && ($i == ($all_count - 1))) $res_.="<li><span>...</span></li>";
  52.         }
  53.       }
  54.  
  55.       if ($p < $all_count)
  56.       {
  57.         $nextpage = $p + 1;
  58.         $res_.=sprintf('<li><a class="page" href="'.$href.'">»</a></li>', sprintf($page_href, $nextpage));
  59.       }
  60.     }
  61.  
  62.     $res_ = '<ol class="paginator">'.$res_.'</ol>';
  63.     if ( $print ) echo $res_;
  64.  
  65.     return $res_;  
  66.   }
  67.  
  68.   function fsize($str_size)
  69.   {
  70.     if ($str_size != "")
  71.     {
  72.       $str_size=(int)$str_size;
  73.       $mpd="./../m3_files/".get_dir($str_size)."/".$str_size.".mp3";
  74.       @$blya=(int)(@filesize($mpd)/1024);
  75.       @$blya=$blya/1024;
  76.       list($mb,$kb) = @explode(".",$blya);
  77.       @$kb = substr($kb, 0, 2);
  78.       if ($kb==""){$kb="00";}
  79.       @$blyxa=$mb.".".$kb." Mb";
  80.       return $blyxa;
  81.     }
  82.   }
  83.  
  84.   global $bytes,$WWW, $LIST_DATA ;
  85.   // Читаем шаблон по которому изменять все страницы
  86.   $fp = fopen ("./../template/list.html", "r" );
  87.   $buffer = fread($fp, $bytes);
  88.   fclose ($fp);
  89.   if ($bukva != ""){$r=2;}else{$r=56;}
  90.   for ($i=0; $i<$r; $i++)
  91.   {
  92.     // значение $LIST_DATA, это то что появляеться в шаблоне поэтому и в ковычках, тут должна быть верхняя ПОСТРАНИЧНАЯ НАВИГАЦИЯ
  93.     $LIST_DATA.="";
  94.     $view=$i;
  95.     switch ($view) {
  96.       case 1: $view="1"; break;
  97.       case 2: $view="a"; break;
  98.       case 3: $view="b"; break;
  99.       case 4: $view="c"; break;
  100.       case 5: $view="d"; break;
  101.       case 6: $view="e"; break;
  102.       case 7: $view="f"; break;
  103.       case 8: $view="g"; break;
  104.       case 9: $view="h"; break;
  105.       case 10: $view="i"; break;
  106.       case 11: $view="j"; break;
  107.       case 12: $view="k"; break;
  108.       case 13: $view="l"; break;
  109.       case 14: $view="m"; break;
  110.       case 15: $view="n"; break;
  111.       case 16: $view="o"; break;
  112.       case 17: $view="p"; break;
  113.       case 18: $view="q"; break;
  114.       case 19: $view="r"; break;
  115.       case 20: $view="s"; break;
  116.       case 21: $view="t"; break;
  117.       case 22: $view="u"; break;
  118.       case 23: $view="v"; break;
  119.       case 24: $view="w"; break;
  120.       case 25: $view="x"; break;
  121.       case 26: $view="y"; break;
  122.       case 27: $view="z"; break;
  123.       case 28: $view="а"; break;
  124.       case 29: $view="б"; break;
  125.       case 30: $view="в"; break;
  126.       case 31: $view="г"; break;
  127.       case 32: $view="д"; break;
  128.       case 33: $view="е"; break;
  129.       case 34: $view="ж"; break;
  130.       case 35: $view="з"; break;
  131.       case 36: $view="и"; break;
  132.       case 37: $view="к"; break;
  133.       case 38: $view="л"; break;
  134.       case 39: $view="м"; break;
  135.       case 40: $view="н"; break;
  136.       case 41: $view="о"; break;
  137.       case 42: $view="п"; break;
  138.       case 43: $view="р"; break;
  139.       case 44: $view="с"; break;
  140.       case 45: $view="т"; break;
  141.       case 46: $view="у"; break;
  142.       case 47: $view="ф"; break;
  143.       case 48: $view="х"; break;
  144.       case 49: $view="ц"; break;
  145.       case 50: $view="ш"; break;
  146.       case 51: $view="щ"; break;
  147.       case 52: $view="э"; break;
  148.       case 53: $view="ю"; break;
  149.       case 54: $view="я"; break;
  150.       case 55: $view="ч"; break;
  151.     }
  152.     if ($bukva != ""){$view=strtolower($bukva);}
  153.     // SELECT * FROM m3_mp3 WHERE artist LIKE 'a%';
  154.     if ($view == "1")
  155.     {
  156.       $leet = mysql_query("SELECT * FROM `m3_mp3` WHERE (SUBSTRING(LCASE(`artist`),1,1) = '1' OR SUBSTRING(LCASE(`artist`),1,1) = '2' OR SUBSTRING(LCASE(`artist`),1,1) = '3' OR SUBSTRING(LCASE(`artist`),1,1) = '4' OR SUBSTRING(LCASE(`artist`),1,1) = '5' OR SUBSTRING(LCASE(`artist`),1,1) = '6' OR SUBSTRING(LCASE(`artist`),1,1) = '7' OR SUBSTRING(LCASE(`artist`),1,1) = '8' OR SUBSTRING(LCASE(`artist`),1,1) = '9' OR SUBSTRING(LCASE(`artist`),1,1) = '0') AND `active` = '1' ORDER BY `artist` ASC;");
  157.     }
  158.     else
  159.     {
  160.       $leet = mysql_query("SELECT * FROM `m3_mp3` WHERE (SUBSTRING(LCASE(`artist`),1,1) = '".$view."') AND `active` = '1' ORDER BY `artist` ASC;");
  161.     }
  162.     $count_str=5;
  163.     $max_count_str=mysql_num_rows($leet);
  164.     $pages=ceil($max_count_str/$count_str);
  165.     $to_file=tag2html($buffer,"/");
  166.     $navi_pages=""; //строка навигации будет дополняться ниже
  167.  
  168.     $pg = new Paginator();
  169.     $pg->title = '';
  170.     $pg->tprev = '«';
  171.     $pg->tnext = '»';
  172.  
  173.     for($ii=1;$ii<=$pages;$ii++) // цикл для создания страниц навигации
  174.     {
  175.       $zh=1;
  176.       while ($row = mysql_fetch_array($leet, MYSQL_ASSOC) AND $zh<$count_str)
  177.       {
  178.         $zh=$zh+1;
  179.         $w_id=$row['id'];
  180.         $w_artist=unsafe_str($row['artist']);
  181.         $w_track=unsafe_str($row['track']);
  182.         $w_size=$row['size'];
  183.         $w_uploader=$row['uploader'];
  184.         $w_date=$row['date'];
  185.         $p_id=$row['id'];
  186.         $p_size=fsize($row['id']);
  187.         @$id3 = new id3("./../m3_files/".get_dir($p_id)."/".$p_id.".mp3");
  188.         @$id_bitrate=$id3->bitrate();
  189.         $v_link=$WWW."pages/".get_dir($w_id)."/".$w_id.".shtml";
  190.         // значение $LIST_DATA, это то что появляеться в шаблоне поэтому и в ковычках, и в виде таблице.
  191.         $LIST_DATA.="<table width=\"100%\" border=\"0\" cellspacing=\"1\">
  192.          <tr>
  193.        <td height=\"60%\"><img src=\"./../fon/p.png\" cellspacing=\"1\" align=\"absmiddle\"/> <a href=\"".$v_link."\" >".$w_artist." - ".$w_track."</a></td>
  194.          <td width=\"100\"> [<font color=\"#660000\"> ".$id_bitrate." Kb/s </font>] </td>
  195.        <td width=\"100\"> [<font color=\"#660000\"> ".$w_size." </font>] </td>
  196.        <td width=\"100\">[<font color=\"#660000\">  ".$w_date." </font>]</td>
  197.  
  198.          </tr>
  199.        </table>";
  200.     }
  201.  
  202.     $LIST_DATA .= '
  203. <style type="text/css">.paginator{list-style: none;} .paginator li{float: left;margin: 0 2px;} .paginator li a{padding: 1px 5px;text-align: center;text-decoration: none;display: block;height: 20px;background: #eeeeee;color: #666666;width: 14px;} .paginator li span.current{padding: 1px 5px;text-align: center;text-decoration: none;display: block;height: 20px;background: #cccccc;color: #666666;width: 14px;}</style><div style="background:#F8F8F8;padding: 5px;">' . paginator('./../m3_lists/'.$i.'%s.shtml', '-%s', $ii,  $max_count_str, $count_str) . '</div>';
  204.  
  205.     //записали в переменку для шаблонки
  206.     $to_file=tag2html($buffer,"/");
  207.     if ( $ii == 1 )
  208.     {
  209.       $fp = fopen ("./../m3_lists/".$i.".shtml", "w+");
  210.     }
  211.     else
  212.     {
  213.       $fp = fopen ("./../m3_lists/".$i."-".$ii.".shtml", "w+");
  214.     }
  215.     fwrite ($fp, $to_file);
  216.     fclose ($fp);
  217.     $LIST_DATA=""; //очистили переменку для шаблонки перед след итерацией
  218.     }
  219.     mysql_free_result($leet); // после всех итерций освободили ресурс
  220.   }
  221. }