Простой сайт своими руками
По роду деятельности есть у меня несколько более-менее стандартных запросов к БД, а также парочка скриптов, которые, что-то делают.
Но все это безобразие делалось на скорую руку и разбросано по всему компьютеру, скрипты отдельно, 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>") ?> |
Ну и еще много разных и полезных страничек которые я постараюсь описать в следующих заметках….