Простой сайт своими руками

По роду деятельности есть у меня несколько более-менее стандартных запросов к БД, а также парочка скриптов, которые, что-то делают.
Но все это безобразие делалось на скорую руку и разбросано по всему компьютеру, скрипты отдельно, SQl отдельно… и иногда просто тяжело найти, что-то, а особенно когда смотришь на название файла и не понимаешь к какому месту его приложить.
Почесав репу решил все это собрать под одну крышу, но как всегда человека одолевает лень. Так случилось и со мной, стало лень все это переписывать заново, а хотелось как-то красиво все это склеить.

Собственно остановился я на таком решении: взять где-то бесплаплый и простой шаблон странички (с детства не сложилось у меня с дизайном), накидать скрипты в одну папку и каким-то php кодом все это выводить на страницу.
Шаблон был взят отсюда http://www.freecsstemplates.org/
и разрезан на 4 части header, left,right, footer
В шапке все стандартно, в левой части менюшки, в правой части основной код и внизу завершающий аккорд.
Сам файл index.php выглядит вот так:

<?php
include ('header.html');
$name=$_GET["name"];
if ($name==''){include ('right.html');} 
    else {include ("scripts/".$name.".php");	}
include ('left.html');
include ('footer.html');
php?>

А в папке со скриптами лежат файлы написаные на PHP
Из левой части мы вызываем странички вот такой ссылкой:

.......
<a href="?name=office">Офисные звонки</a>
<a href="?name=status_comp">Подглядываем за компьютерами</a>
......

Для примера, вот страничка которая делает отчет кто и сколько назвонил из офиса за месяц через Asterisk.
office.php:

<?php
$host = "10.0.99.99";
$user = "user";
$pass = "pass";
$db = "DB";
$mons =  ($_POST['mons']);
if (! isset($mons))
     {
      $mons="1";
     }
 
//global
$date_search = " '2010-".$mons."-01 00:00:00' and '2010-".($mons+1)."-01 00:00:00' ";
$bgcolor = "yellow";
$connection = pg_connect ("host=$host dbname=$db user=$user password=$pass");
if (!$connection){die("Could not open connection to database server");}
?>
<body>
<form name="form1" action=<?echo($_SERVER['REQUEST_URI'])?> method="post">
Месяц: <select class="input" type=text name=mons>
<option value='1'>Январь</option>
<option value='2'>Февраль</option>
<option value='3'>Март</option>
<option value='4'>Апрель</option>
<option value='5'>Май</option>
<option value='6'>Июнь</option>
<option value='7'>Июль</option>
<option value='8'>Август</option>
<option value='9'>Сентябрь</option>
<option value='10'>Октябрь</option>
<option value='11'>Ноябрь</option>
<option value='12'>Декабрь</option>
</select> 
<input type="submit" value="Показать">
</form>
<table border ='1'>
<?php
//выводим строку заголовков 
echo ("<tr BGCOLOR=\"#CCCC99\">
<td>Контекст</td>
<td>Тел</td>
<td>CLID</td>
<td>Звонков</td>
<td>Минут</td>
</tr>");
// generate and execute a query
$query = "select dcontext,src,clid,count(*),round(sum(billsec)/60) from cdr where calldate between ".$date_search." and char_length(src)=5 and char_length(dst)>5 group by dcontext,src,clid   order by src ;";
$result = pg_query($connection, $query) or die("Error in query: $query." . pg_last_error($connection));
while ($tablerows = pg_fetch_array($result)) {
if ($bgcolor == "yellow")
    {
    $bgcolor="#CC9999";
    }
    else $bgcolor="yellow";
echo ("<tr bgcolor=\"".$bgcolor."\"><td>$tablerows[0]</td>
<td>$tablerows[1]</td>
<td><a href=index.php?name=user&tel=$tablerows[1]&mons=$mons>$tablerows[2]</td>
<td>$tablerows[3]</td>
<td>$tablerows[4]</td>
</tr>");
}
echo ("</table>")
?>

В итоге получаем красивую табличку и с ссылкой на детальный отчет по каждому номеру телефона.
Вызывается он вот так

index.php?name=user&tel=$tablerows[1]&mons=$mons

И в него передается по какому номеру и месяцу выводить статистику.
Пример файла user.php

<?php
$host = "10.0.99.99";
$user = "user";
$pass = "pass";
$db = "DB";
$mons =  ($_GET['mons']);
$tel =  ($_GET['tel']);
if (! isset($mons))
{
$mons="1";
}
//global
$date_search = " '2010-".$mons."-01 00:00:00' and '2010-".($mons+1)."-01 00:00:00' ";
$bgcolor = "yellow";
$connection = pg_connect ("host=$host dbname=$db user=$user password=$pass");
if (!$connection){die("Could not open connection to database server");}
?>
<body>
<form name="form1" action=<?echo($_SERVER['REQUEST_URI'])?> method="post">
Месяц: <select class="input" type=text name=mons>
<option value='1'>Январь</option>
<option value='2'>Февраль</option>
<option value='3'>Март</option>
<option value='4'>Апрель</option>
<option value='5'>Май</option>
<option value='6'>Июнь</option>
<option value='7'>Июль</option>
<option value='8'>Август</option>
<option value='9'>Сентябрь</option>
<option value='10'>Октябрь</option>
<option value='11'>Ноябрь</option>
<option value='12'>Декабрь</option>
</select> 
<input type="submit" value="Показать">
</form>table border ='1'>
<?php
//выводим строку заголовков 
echo ("
<tr BGCOLOR=\"#CCCC99\"><td>Дата</td><td>откуда</td><td>Куда</td><td>Время</td></tr>");
// generate and execute a query
$query = "select calldate,src,dst,billsec from cdr where calldate between ".$date_search." and (src='".$tel."' or channel like '%".trim($tel)."%') and char_length(dst)>5;";
$result = pg_query($connection, $query) or die("Error in query: $query." . pg_last_error($connection));
while ($tablerows = pg_fetch_array($result)){
if ($bgcolor == "yellow")
    {    $bgcolor="#CC9999";}
    else $bgcolor="yellow";
echo ("<tr bgcolor=\"".$bgcolor."\"><td>$tablerows[0]</td>
<td>$tablerows[1]</td>
<td>$tablerows[2]</td>
<td>$tablerows[3]</td>
</tr>");
	}
echo ("</table>")
?>

Ну и еще много разных и полезных страничек которые я постараюсь описать в следующих заметках….

Добавить комментарий