Skip to content

Simplelist bundle for laravel to manage listing, sorting and seraching database data.

License

Notifications You must be signed in to change notification settings

MuhammadAliPasha/simplelist

Repository files navigation

Simplelist

Easy to use flexible list

Flexible list with paging, searching, sorting, and adding buttons. Simplelist is very powerful tool, you can use it in simple way, but it has possibility to create list for advance queries. You can find examples on - http://www.simplelist.bossbyte.com.

Quickstart

  • Clone simplelist into APPPATH/bundles/
  • Edit APPPATH/application/bundles.php
<?php
// APPPATH/application/bundles.php
return array(
  'simplelist' => array('auto' => true),
);

###Features###

  • Pagination
  • Sorting and enable,disable sort in every column
  • Search by many or one column
  • Adding action buttons, possibility to add button with own attributes
  • Values of columns can be created from many columns and html tags ex. img src="path/@id/file.@ext"
  • Set own language file for column names
  • Full customization possibility

Content standards for column content and button action is string with @ tag for columns. You can set which columns will be in this string. You can use it for images, dom attributes, js scripts and content different than only column value.

Usage

Quick use

$param=new SimpleList\Param();
$param->query = DB::table('banner');//query 
$param->columns=array('id','name');//columns on list

return View::make('admin::banner.index')->with(array('list'=>SimpleList::generate($param)));

Simple list use

$param=new SimpleList\Param();
$param->query = DB::table('banner');//query 
$param->columns=array('id','name');//columns on list
$param->sort = true;//is sorting enabled

/**
 * Button is default <a class="simplelist_button"></a> but you can change a to something else and class for different class
 */
$button1=new SimpleList\Button();//create button
$button1->action="/admin/banner/edit/@id/";//button href - @id will be id of row. You can set every column in button action variable ex. @name
$button1->name='Edit'; // name displayed in button


$button2=new SimpleList\Button();
$button2->action="/admin/banner/delete/@id/";
$button2->name='Delete';

$param->buttons=array(
	$button1,$button2
);

return View::make('admin::banner.index')->with(array('list'=>SimpleList::generate($param)));

And in your blade view:

{{$list}}

Advanced use

/**
 * if we have complex column we create it by param
 */
$cparam = new \SimpleList\Column\Param();
$cparam->name = 'thumbnail_ext'; //column in db
$cparam->sort = false; //no sorting by this column
$cparam->content = '<img src="'.Config::get('admin::video.thumbnail_save_path').'/@id.@thumbnail_ext" />'; //comtent @name will be name column in current row
$img = SimpleList\Column::createByParam($cparam);

$list_param->columns = array('video.id','title','video.created_at','category.name',$img);//columns for list
$list_param->search_cols = array('title','video.id','category.name'); //columns for search
 
$list_param->sort = true;//sort is enabled
$list_param->per_page = 5;//5 per page
$list_param->bundle = 'admin';//if simplelist is used in bundle it will be used to lang file ex. bundlename::lang_filename to lang the columns name
$list_param->lang_filename = Config::get('admin::video.lang_filename');//gets this lang name 

$edit_button = new SimpleList\Button();
$edit_button->action = '/admin/video/edit/@id';
$edit_button->name = 'Edit';
$delete_button = new SimpleList\Button();
$delete_button->action = '/admin/video/delete/@id';
$delete_button->name = 'Delete';

$list_param->buttons = array(
    $edit_button,
    $delete_button
);
 
return View::make('admin::video.list')->with('list',SimpleList::generate($list_param));

Simplelist config file:

return array(
'table_class'=>'simplelist',
'td_class'=>'simplelist_td',
'span_class'=>'simplelist_span',
'search_class'=>'simplelist_search',
'button_class'=>'button',//buttons class
'button_element'=>'a',//dom element of buttons
'button_action_attr'=>'href',// attribute of action in buttons
'lang_filename'=>'simplelist', //file name to get
'per_page'=>20
);

SimpleList Param file:

	$param = new \SimpleList\Param();
	
	$param->sort=false;// set is sorting
	$param->default_sort_col=false;//set default sort col
	$param->default_sort_type=false;// set default type desc,asc
	
	$param->search_cols=array();//cols to search
	$param->query;//Db::table('name')->where.... 
	$param->per_page=20;
	$param->columns=array();//columns in list
	
	/** 
	 * this values are set from config but can be changed in every instance of list
	 */
	$param->table_class;
	$param->bundle;
	$param->buttons;
	$param->lang_filename;
	$param->span_class;
	$param->td_class;
	$param->search_class;

###HELP

Need help? Contact me on maciej.sikora@bossbyte.com.

About

Simplelist bundle for laravel to manage listing, sorting and seraching database data.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published