Datatables: لایبرری پی‌اچ‌پی برای هندل پردازش‌های سمت سرور دیتاتیبل‌ها

لایبرری datatables برای هندل کردن پردازش‌های سمت سرور مربوط به دیتاتیبل‌ها کاربرد دارد. دیتاتیبل‌ها جداولی داینامیک هستند که محتوای آن‌ها به کمک اجکس رفرش می‌شود. استفاده از دیتاتیبل‌ها، روشی سریع و ساده برای پردازش محتوای جدول‌ها است.

نمونه دیتاتیبل

فیچرها

  1. استفاده از آن آسان است. تنها با چند کد، اطلاعات مورد نیاز به صورت json تولید می‌شود.
  2. با استفاده از کلوژر فانکشن می‌توانید ستون‌ها را ویرایش کنید.
  3. از mysql و sqlite پشتیبانی می‌کند.
  4. با فریمورک‌های زیر کار می‌کند:

روش نصب

نصب از طریق کامپوزر پشتیبانی می‌شود.
اگر هنوز شروع به استفاده از کامپوزر نکرده‌اید، به شدت توصیه می‌کنیم از آن استفاده کنید.

یک فایل با نام 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 به بالا
تگ‌ها