شخصی سازی
برای اینکه شخصی سازی کنید، باید کلاس AdminPer را خودتان بسازید! در صورتی که قبل از getAdmin این کلاس را نساخته باشید، خودکار ساخته می شود
توجه کنید که ساخت کلاس AdminPer با ارث بری از AdminPerBase باعث می شود که ابزار های ام ام بی را هم در دست داشته باشید و کار شما آسان شود
class AdminPer extends AdminPerBase {
public function init()
{
}
private $all_true = false;
public function initAs($as)
{
if($as == '*') {
$this->all_true = true;
}
}
public function __get($var) {
if($this->all_true) {
return true;
}
}
public function getData()
{
}
}
متغیر جدید
برای اینکه ستون جدیدی را معرفی کنید، کافیست که متغیر آن را بصورت public و با نام دقیق ستون، در کلاس قرار دهید
/**
* توضیحات دلخواه
*
* @var string
*/
public $col;
توجه کنید که با وارد نکردن این بخش همچنان ام ام بی متغیر را تعریف می کند
شخصی سازی متغیر
برای اینکه متغیری را شخصی سازی کنید، باید از سه تابع init و initAs و getData استفاده کنید:
public function init() {
}
public function initAs($as) {
}
public function getData() {
}
تابع init زمانی که متغیر ها تعریف می شوند صدا زده می شود. می توانید برای عملیات های خود استفاده کنید
به عنوان مثال می خواهیم متغیر جدیدی را وابسته تنظیم کنیم:
public function init() {
$this->canOpenPanel = $this->modifyUsers || $this->editPosts;
}
تابع initAs زمانی صدا زده می شود که دیتای ادمین بصورت غیر ارایه باشد(مانند * )
public function initAs($as) {
if($as == '*') {
$this->modifyUsers = true;
$this->editPosts = true;
}
}
تابع getData در زمان ذخیره سازی صدا زده می شود و از ما نام ستون ها و مقدار های آن ها را میخواهد
توجه کنبد که برای کار کرد بهتر، بهتر است تمام متغیر ها را بر گردانید تا به مشکل بر نخورید!
public function getData() {
return [
'modifyUsers' => $this->modifyUsers,
'editPosts' => $this->editPosts
];
}
نتیجه
در نهایت به عنوان نمونه داریم:
class AdminPer extends AdminPerBase {
/**
* توضیحات دلخواه
*
* @var bool
*/
public $modifyUsers;
/**
* توضیحات دلخواه
*
* @var bool
*/
public $editPosts;
public function init() {
$this->canOpenPanel = $this->modifyUsers || $this->editPosts;
}
public function initAs($as) {
if($as == '*') {
$this->modifyUsers = true;
$this->editPosts = true;
}
}
public function getData() {
return [
'modifyUsers' => $this->modifyUsers,
'editPosts' => $this->editPosts
];
}
}