Na een paar dagen goed lezen luisteren en leren :P
wil ik hierbij toch even mijn scriptje aan jullie laten zien, met wat ik tot nu toe heb gemaakt.
Het is heel erg basic, maar ja, je moet ergens beginnen :)
het is een Oop User Permission Class.
(let niet op de mysql want die word nog in een class gemaakt, de informatie moet er ook nog bij komen)
wil gewoon weten of ik zo goed bezig ben :)
user.class.php
<?php
abstract class User {
protected $name;
function __construct($name)
{
$this->name = $name;
}
function getName()
{
return $this->name;
}
}
class Admin extends User {
function getStatus()
{
return "Admin";
}
function ReadPermission()
{
return "Yes";
}
function AddPermission()
{
return "Yes";
}
function ModifyPermission()
{
return "Yes";
}
}
class Moderator extends User {
function getStatus()
{
return "Moderator";
}
function ReadPermission()
{
return "Yes";
}
function AddPermission()
{
return "Yes";
}
function ModifyPermission()
{
return "Yes";
}
}
class Member extends User {
function getStatus()
{
return "Member";
}
function ReadPermission()
{
return "Yes";
}
function AddPermission()
{
return "Yes";
}
function ModifyPermission()
{
return "Yes";
}
}
class Guest extends User {
function getStatus()
{
return "Guest";
}
function ReadPermission()
{
return "Yes";
}
function AddPermission()
{
return "No";
}
function ModifyPermission()
{
return "No";
}
}
class CreateStatus {
private $user;
private $status;
static function CreateUser($name,$status)
{
switch ($status) {
case "admin": return new Admin($name);
case "moderator": return new Moderator($name);
case "member": return new Member($name);
case "guest": return new Guest($name);
default: throw new Exception("System message: Niets gevonden..");
}
}
}
?>
index.php
<?php
ini_set('display_errors',1);
error_reporting(E_ALL | E_STRICT);
require_once 'include/db_config.php';
require_once 'include/class/user.class.php';
try
{
function DisplayStatus(User $object)
{
if(isset($object))
{
echo "Username: " . $object->getName() . "<br>";
echo "Status:" . $object->getStatus() . "<br>";
echo "Read Topic:" . $object->ReadPermission() . "<br>";
echo "Add Topic:" . $object->AddPermission() . "<br>";
echo "Modify Topic:" . $object->ModifyPermission() . "<br><br>";
}
else
{
throw new Exception("System message: No Objects found..");
}
}
DisplayStatus(CreateStatus::CreateUser("papa","admin"));
DisplayStatus(CreateStatus::CreateUser("ome henk","moderator"));
DisplayStatus(CreateStatus::CreateUser("ome piet","member"));
DisplayStatus(CreateStatus::CreateUser("ome kees","guest"));
echo'<hr>';
$res = mysql_query("SELECT username,status FROM users");
$tellen = mysql_num_rows($res);
if($tellen <= 0){
throw new Exception("System message: No results found..");
}
else
{
while($data = mysql_fetch_array($res)){
DisplayStatus(CreateStatus::CreateUser($data['username'],$data['status']));
}
}
}
catch(Exception $e)
{
echo '<pre>';
echo 'Regelnummer: '.$e->getLine().'<br>';
echo 'Bestand: '.$e->getFile().'<br>';
echo 'Foutmelding: '.$e->getMessage().'<br>';
echo '</pre>';
}
?>
m.v.g Rob