لایبرری datatables برای هندل کردن پردازشهای سمت سرور مربوط به دیتاتیبلها کاربرد دارد. دیتاتیبلها جداولی داینامیک هستند که محتوای آنها به کمک اجکس رفرش میشود. استفاده از دیتاتیبلها، روشی سریع و ساده برای پردازش محتوای جدولها است.
فیچرها
- استفاده از آن آسان است. تنها با چند کد، اطلاعات مورد نیاز به صورت json تولید میشود.
- با استفاده از کلوژر فانکشن میتوانید ستونها را ویرایش کنید.
- از mysql و sqlite پشتیبانی میکند.
- با فریمورکهای زیر کار میکند:
- لاراول
- کدایگنایتر 3
- فالکون 3 و ورژنهای بعد
روش نصب
نصب از طریق کامپوزر پشتیبانی میشود.
اگر هنوز شروع به استفاده از کامپوزر نکردهاید، به شدت توصیه میکنیم از آن استفاده کنید.
یک فایل با نام composer.json
در روت پروژه خودتان قرار دهید و کد زیر را در آن بنویسید:
{
"require": {
"ozdemir/datatables": "1.*"
}
}
حالا دستور composer install را اجرا کنید.
توجه
برای اجرای دستور بالا، ابتدا باید کامپوزر را نصب کرده باشید، سپس دستور بالا را در ترمینال مک/لینوکس یا کامندلاین ویندوز اجرا کنید.
یا اگر میخواهید سریعتر این کار را انجام دهید، نیازی به ساخت فایل بالا نیست، تنها دستور composer require ozdemir/datatables
را اجرا کنید.
سپس autoloader را به پروژه خود اضافه کنید.
<?php
require_once 'vendor/autoload.php'
حالا پروژه شما آماده شروع استفاده از لایبرری Datatables است.
روش استفاده
یک مثال ساده اجکس:
<?php
require_once 'vendor/autoload.php';
use Ozdemir\Datatables\Datatables;
use Ozdemir\Datatables\DB\MySQL;
$config = [ 'host' => 'localhost',
'port' => '3306',
'username' => 'homestead',
'password' => 'secret',
'database' => 'sakila' ];
$dt = new Datatables( new MySQL($config) );
$dt->query("Select film_id, title, description from film");
echo $dt->generate();
متدها
لیست زیر، متدهای پابلیک در دسترس را نشان میدهد.
query ( $query : string )
(اجباری)add ($newColumn:string, Closure:object )
(اختیاری)edit ($column:string, Closure:object )
(اختیاری)get ($value:string )
(اختیاری - برای اهداف توسعه)hide ($column:mixed )
(اختیاری)generate ( )
(اجباری)
مثال
<?php
$dt = new Datatables( new MySQL($config) );
$dt->query("Select id, name, email, address, plevel from users");
$dt->edit('id', function($data){
// return an edit link.
return "edit";
});
$dt->edit('email', function($data){
// return mail@mail.com to m***@mail.com
return preg_replace('/(?<=.).(?=.*@)/u','*', $data['email']);
});
$dt->edit('address', function($data){
// check if user has authorized to see that
$current_user_plevel = 4;
if ($current_user_plevel > 2 && $current_user_plevel > $data['plevel']) {
return $data['address'];
}
return 'you are not authorized to view this column';
});
$dt->add('action', function($data){
// return an edit link in new column action
return "edit";
});
echo $dt->generate();
الزامات
- DataTables ورژن 1.10 به بالا
- PHP ورژن 5.3.7 به بالا
مجتبی پاکزاد
حل مساله و چالش رو خیلی دوست دارم و رابطه خیلی خوبی با ریاضیات، برنامهنویسی و اقتصاد دارم. علاقه زیادی به هوشمصنوعی، یادگیری ماشین و موضوعات مرتبط دارم.
دیدگاهها
ثبت دیدگاه