function generate_lists($bukva)
{
function paginator($href='', $page_href='', $p=0, $all_count=0, $rpp=0, $print=true)
{
$p = abs($p);
if ($p==0) $p = 1;
$rpp = abs($rpp);
if ($rpp==0) $rpp = 10;
$all_count = abs($all_count);
if ($all_count == 0) return;
$all_count = ceil($all_count/$rpp);
if ($p>$all_count) $p = $all_count;
if ($all_count<2) return '';
$_range = 5;
$res_ = '';
if ($all_count > 1)
{
if ($p > 1)
{
$prevpage = $p - 1;
$t = sprintf($page_href, $prevpage);
if ( $prevpage == 1 ) $t = '';
$res_ .= sprintf('<li><a class="page" href="'.$href.'">«</a></li>', $t);
}
for ($i = 1; $i < $all_count+1; $i++)
{
if ($i == $p)
{
$res_ .= '<li><span class="current">'.$i.'</span></li>';
}
else
{
if ((($i > ($p - $_range)) && ($i < ($p + $_range))) OR ($i == $all_count) || ($i == 1))
{
$t = sprintf($page_href, $i);
if ( $i == 1 ) $t = '';
$res_ .= sprintf('<li><a class="page" href="'.$href.'">'.$i.'</a></li>', $t);
}
}
if ($i < $all_count)
{
if (($p > $_range+1) && ($i == 1)) $res_.="<li><span>...</span></li>";
if (($p < ($all_count - $this->range-1)) && ($i == ($all_count - 1))) $res_.="<li><span>...</span></li>";
}
}
if ($p < $all_count)
{
$nextpage = $p + 1;
$res_.=sprintf('<li><a class="page" href="'.$href.'">»</a></li>', sprintf($page_href, $nextpage));
}
}
$res_ = '<ol class="paginator">'.$res_.'</ol>';
if ( $print ) echo $res_;
return $res_;
}
function fsize($str_size)
{
if ($str_size != "")
{
$str_size=(int)$str_size;
$mpd="./../m3_files/".get_dir($str_size)."/".$str_size.".mp3";
@$blya=(int)(@filesize($mpd)/1024);
@$blya=$blya/1024;
list($mb,$kb) = @explode(".",$blya);
@$kb = substr($kb, 0, 2);
if ($kb==""){$kb="00";}
@$blyxa=$mb.".".$kb." Mb";
return $blyxa;
}
}
global $bytes,$WWW, $LIST_DATA ;
// Читаем шаблон по которому изменять все страницы
$fp = fopen ("./../template/list.html", "r" );
$buffer = fread($fp, $bytes);
fclose ($fp);
if ($bukva != ""){$r=2;}else{$r=56;}
for ($i=0; $i<$r; $i++)
{
// значение $LIST_DATA, это то что появляеться в шаблоне поэтому и в ковычках, тут должна быть верхняя ПОСТРАНИЧНАЯ НАВИГАЦИЯ
$LIST_DATA.="";
$view=$i;
switch ($view) {
case 1: $view="1"; break;
case 2: $view="a"; break;
case 3: $view="b"; break;
case 4: $view="c"; break;
case 5: $view="d"; break;
case 6: $view="e"; break;
case 7: $view="f"; break;
case 8: $view="g"; break;
case 9: $view="h"; break;
case 10: $view="i"; break;
case 11: $view="j"; break;
case 12: $view="k"; break;
case 13: $view="l"; break;
case 14: $view="m"; break;
case 15: $view="n"; break;
case 16: $view="o"; break;
case 17: $view="p"; break;
case 18: $view="q"; break;
case 19: $view="r"; break;
case 20: $view="s"; break;
case 21: $view="t"; break;
case 22: $view="u"; break;
case 23: $view="v"; break;
case 24: $view="w"; break;
case 25: $view="x"; break;
case 26: $view="y"; break;
case 27: $view="z"; break;
case 28: $view="а"; break;
case 29: $view="б"; break;
case 30: $view="в"; break;
case 31: $view="г"; break;
case 32: $view="д"; break;
case 33: $view="е"; break;
case 34: $view="ж"; break;
case 35: $view="з"; break;
case 36: $view="и"; break;
case 37: $view="к"; break;
case 38: $view="л"; break;
case 39: $view="м"; break;
case 40: $view="н"; break;
case 41: $view="о"; break;
case 42: $view="п"; break;
case 43: $view="р"; break;
case 44: $view="с"; break;
case 45: $view="т"; break;
case 46: $view="у"; break;
case 47: $view="ф"; break;
case 48: $view="х"; break;
case 49: $view="ц"; break;
case 50: $view="ш"; break;
case 51: $view="щ"; break;
case 52: $view="э"; break;
case 53: $view="ю"; break;
case 54: $view="я"; break;
case 55: $view="ч"; break;
}
if ($bukva != ""){$view=strtolower($bukva);}
// SELECT * FROM m3_mp3 WHERE artist LIKE 'a%';
if ($view == "1")
{
$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;");
}
else
{
$leet = mysql_query("SELECT * FROM `m3_mp3` WHERE (SUBSTRING(LCASE(`artist`),1,1) = '".$view."') AND `active` = '1' ORDER BY `artist` ASC;");
}
$count_str=5;
$max_count_str=mysql_num_rows($leet);
$pages=ceil($max_count_str/$count_str);
$to_file=tag2html($buffer,"/");
$navi_pages=""; //строка навигации будет дополняться ниже
$pg = new Paginator();
$pg->title = '';
$pg->tprev = '«';
$pg->tnext = '»';
for($ii=1;$ii<=$pages;$ii++) // цикл для создания страниц навигации
{
$zh=1;
while ($row = mysql_fetch_array($leet, MYSQL_ASSOC) AND $zh<$count_str)
{
$zh=$zh+1;
$w_id=$row['id'];
$w_artist=unsafe_str($row['artist']);
$w_track=unsafe_str($row['track']);
$w_size=$row['size'];
$w_uploader=$row['uploader'];
$w_date=$row['date'];
$p_id=$row['id'];
$p_size=fsize($row['id']);
@$id3 = new id3("./../m3_files/".get_dir($p_id)."/".$p_id.".mp3");
@$id_bitrate=$id3->bitrate();
$v_link=$WWW."pages/".get_dir($w_id)."/".$w_id.".shtml";
// значение $LIST_DATA, это то что появляеться в шаблоне поэтому и в ковычках, и в виде таблице.
$LIST_DATA.="<table width=\"100%\" border=\"0\" cellspacing=\"1\">
<tr>
<td height=\"60%\"><img src=\"./../fon/p.png\" cellspacing=\"1\" align=\"absmiddle\"/> <a href=\"".$v_link."\" >".$w_artist." - ".$w_track."</a></td>
<td width=\"100\"> [<font color=\"#660000\"> ".$id_bitrate." Kb/s </font>] </td>
<td width=\"100\"> [<font color=\"#660000\"> ".$w_size." </font>] </td>
<td width=\"100\">[<font color=\"#660000\"> ".$w_date." </font>]</td>
</tr>
</table>";
}
$LIST_DATA .= '
<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>';
//записали в переменку для шаблонки
$to_file=tag2html($buffer,"/");
if ( $ii == 1 )
{
$fp = fopen ("./../m3_lists/".$i.".shtml", "w+");
}
else
{
$fp = fopen ("./../m3_lists/".$i."-".$ii.".shtml", "w+");
}
fwrite ($fp, $to_file);
fclose ($fp);
$LIST_DATA=""; //очистили переменку для шаблонки перед след итерацией
}
mysql_free_result($leet); // после всех итерций освободили ресурс
}
}