PHP-Code:
<?php
class home
{
####################################################################
function client_auflisten() {
//global vars
global $tpl; //smarty
global $objDB; //pear
global $PHP_SELF;
global $prefix;
//Titel
$interntitel = "Kundenverwaltung";
//Internmenü
$imenu = "»<a href=\"".$PHP_SELF."?action=new\" class=\"subnavlink\">Neuer Kunde</a>";
//a-z- navi
$az = range('a', 'z') ;
// wird für die mysql abfrage benötigt
if (isset($_POST['search'])) {
$filter = "WHERE `name` LIKE '%".$_POST['search']."%'";
} elseif (isset($_GET['show'])) {
$filter = "WHERE `name` LIKE '".$_GET['show']."%'";
} else {
$filter = "";
}
//blättern
$sql = "SELECT
*
FROM
".$prefix."_client";
$result = $objDB->query($sql);
if(DB::isError($result)) {
die($result->getMessage());
}
$count = $result->numRows();
//Wenn keine Seite gewählt Site = 0
if (!isset($page)) {
$page = 0;
}
$sql = "SELECT
cid, name
FROM
".$prefix."_client
$filter
ORDER BY
`name` ASC
LIMIT
$page , 10";
$result = $objDB->query($sql);
if(DB::isError($result)) {
die($result->getMessage());
}
//ausgabe der daten!
$clientdata = array();
while($row = $result->fetchrow(DB_FETCHMODE_ASSOC)) {
$clientdata[] = $row;
}
//Blätterfunktion
$Seiten = "" ; //auf leer setzen
$pages = ""; //auf leer setzen
if ($page > 0) {
$pages .= "<a href=\"$PHP_SELF?page=0\" class=\"subnavlink\">[erste Seite]</a> ";
$back = $page - 10;
if ($back < 0) {
$back = 0;
}
$pages .= "<a href=\"$PHP_SELF?page=$back\" class=\"subnavlink\">[zurück]</a> ";
}
if($count>10) {
$Seiten=intval($count/10);
if($count%10) {
$Seiten++;
}
}
for ($i=1;$i<=$Seiten;$i++) {
$fwd=($i-1)*10;
$pages .= "<a href=\"$PHP_SELF?page=$fwd\" class=\"subnavlink\">$i</a> ";
}
if($page < $count-10) {
$fwd=$page+10;
$pages .= "<a href=\"$PHP_SELF?page=$fwd\" class=\"subnavlink\">[weiter]</a> ";
$fwd=$count-10;
$pages .= "<a href=\"$PHP_SELF?page=$fwd\" class=\"subnavlink\">[letzte Seite]</a>";
}
//Templates aufbereiten
$tpl->assign('interntitel', $interntitel);
$tpl->assign('imenu', $imenu);
$tpl->assign('az', $az);
$tpl->assign('pages', $pages);
$tpl->assign('clientdata', $clientdata);
$this->call_tpl = "client.tpl";
}
##################################################################################
function client_new() {
//global vars
global $tpl; //smarty
global $objDB; //pear
global $PHP_SELF; //php_self
global $prefix; //prefix
//leere var erzeugen
$error = "";
//Titel
$interntitel = "Neuen Kunden anlegen";
//Internmenü
$imenu = "»<a href=\"".$PHP_SELF."\" class=\"subnavlink\">Kundenverwaltung</a>";
//Datenbanken füllen nur wenn abgeschickt wurde
if (isset($_POST['submit'])) {
//checken ob es einen kundennamen schon gibt oder keiner eingetragen wurde
$sql = "SELECT
*
FROM
".$prefix."_client
WHERE
name='".$_POST['clientname']."'";
$result = $objDB->query($sql);
if(DB::isError($result)) {
die($result->getMessage());
}
//anzahl der clients
$anz = $result->numRows();
if (!isset($_POST['clientname']) OR $anz > "0" ) {
$error = "Sie habe keinen oder einen schon vorhandenen Kundennamen eingegeben";
//Templates aufbereiten
$tpl->assign('eroor', $eroor);
$this->call_tpl = "newclient.tpl";
exit();
} else {
$timecode = time();
$sql = "INSERT INTO
".$prefix."_client
VALUES (
'',
'".$_POST['clientname']."',
'".$_POST['clientpartner']."',
'".$_POST['clientstreet']."',
'$timecode',
'".$_POST['clientnr']."',
'".$_POST['clienttown']."',
'".$_POST['clientplz']."',
'".$_POST['clienttelefon']."',
'".$_POST['clientfax']."',
'".$_POST['clientisdn']."',
'".$_POST['clientemail']."',
'".$_POST['clienturl']."',
'".$_POST['clientinfo']."'
)";
$objDB->query($sql);
//header
header('Location: client.php?show='.$_POST['clientname'].'');
exit();
}
} else {
//normle ausgabe ohne submit
$tpl->assign('interntitel', $interntitel);
$tpl->assign('imenu', $imenu);
$tpl->assign('error', $error);
$this->call_tpl = "new_client.tpl";
}
}
##################################################################################
function home()
{
if(!isset($_GET['action'])){
$_GET['action'] = 'home';
}
switch($_GET['action']) {
case "home":
$this->client_auflisten();
break;
case "new":
$this->client_new();
break;
case "edit":
$this->client_edit();
break;
default:
$this->client_auflisten();
break;
}
}
}
?>
und der aufruf:
PHP-Code:
<?php
require_once('inc/global.inc.php');
//krams
include('client.class.php');
$instanz = new home();
?>
Ist das so "professionell" "klug" aufgebaut.
Ist für mich noch etwas neu mit den klassen.??
Was sollte ich ändern, was ist schon gut.
Danke für jeden tip
Kommentar