Witam napisałem kod i ma on za zadanie dodawać lub odejmować pkt za daną czynność na stronie np. gdy user doda komentarz. Jeśli admin usunie np. komentarz danego użytkownika wtedy usuwa mu liczbę pkt.
I chodzi mi żeby to zrobić tak że przy tworzeniu obiektu podawać user_id, identyfikator kategorii oraz nazwę metody jaka ma być wykonywana np.
new Eps(12, 'A', $this->update_point());
tylko wiem że tak się nie da. Wiec proszę o wskazówki jak powinna być napisana taka klasa bo wiem że da się to napisać prościej. Proszę o wskazówki ogarniętych ludzi w OOP.
Kod.
abstract class Eps_Cat_Point {
protected
$eps_cat_point = array('A' => 3, 'C' => 5, 'D' => 2
);
// Dane beda pochodzic z bazy
// Litera to identyfikator kategorii za co dostaje sie pkt np A za artykul 3 pkt.
}
class Eps extends Eps_Cat_Point {
public $user_id;
public $cat_point;
public $query;
public function __construct($user_id, $cat_point) {
if($this->setUser_id($user_id) && $this->setCat_Point($cat_point)){
$this->user_id = $user_id;
$this->cat_point = $cat_point;
}
}
public function update_point(){
$this->query = "UPDATE tabela SET user_point=user_point+'".$this->eps_cat_point[$this->cat_point]."' WHERE user_id='".$this->user_id."'";
return $this->query;
}
public function delete_point(){
$this->query = "UPDATE tabela SET user_point=user_point-'".$this->eps_cat_point[$this->cat_point]."' WHERE user_id='".$this->user_id."'";
return $this->query;
}
public function setUser_id($user_id) {
die("Niepoprawna wartosc user_id"); return false;
} else {
return true;
}
}
public function setCat_Point($cat_point) {
die("Niepoprawna wartosc cat_point"); return false;
} else {
return true;
}
}
}
$eps = new Eps(12, 'A');
echo $eps->delete_point();
Ten post edytował arzach 24.10.2010, 20:29:32