',$col_label.form::checkbox($col_id,1,$v->isVisible(),null,null,!$v->canHide()));
array_push($list,$col_html);
}
$nb_per_page = isset($_GET['nb']) ? $_GET['nb'] : 10;
array_push($list,' '.form::field('nb',3,3,$nb_per_page));
return sprintf($block,implode('',$list));
}
/**
Returns HTML code list to display
@param page string|int Current page
@param nb_per_page string|int Number of items to display in each page
@param enclose_block string HTML wrapper of defined list
@return string HTML code list
*/
public function display($page,$nb_per_page,$enclose_block = '')
{
if ($this->rs->isEmpty())
{
echo '
';
}
}
/**
Adds column to defined list
@param id string Column id
@param title string Column title (for table headers)
@param callback array Column callback (used for display)
@param html string Extra html (used for table headers)
@param can_hide boolean Defines if the column can be hidden or not
*/
protected function addColumn($id,$title,$callback,$html = null,$can_hide = true)
{
try {
$c = new adminGenericColumn($id,$title,$callback,$html,$can_hide);
$this->columns[$id] = $c;
}
catch (Exception $e) {
if (DC_DEBUG) {
$this->core->error->add($e->getMessage());
}
}
}
/**
Returns default caption text
@return string Default caption
*/
protected function getDefaultCaption()
{
return;
}
/**
Returns default HTMl code line
@return string Default HTMl code line
*/
protected function getDefaultLine()
{
return '
%s
';
}
/**
Sets columns visibility of defined list
*/
private function setColumnsVisibility()
{
$ws = $this->core->auth->user_prefs->addWorkspace('lists');
$user_pref = !is_null($ws->{$this->context}) ? unserialize($ws->{$this->context}) : array();
foreach ($this->columns as $k => $v) {
$visibility = array_key_exists($k,$user_pref) ? $user_pref[$k] : true;
if (array_key_exists($this->form_trigger,$_REQUEST)) {
$key = sprintf($this->form_prefix,$k);
$visibility = !array_key_exists($key,$_REQUEST) ? false : true;
}
if (!$v->canHide()) {
$visibility = true;
}
$v->setVisibility($visibility);
$user_pref[$k] = $visibility;
}
if (array_key_exists($this->form_trigger,$_REQUEST)) {
$this->core->auth->user_prefs->lists->put($this->context,serialize($user_pref),'string');
}
}
/**
Returns HTML code for each line of defined list
@return string HTML code line
*/
private function displayLine()
{
$res = '';
foreach ($this->columns as $k => $v) {
if ($v->isVisible()) {
$c = $v->getInfo('callback');
$func = $c[1];
$res .= $this->{$c[1]}();
}
}
return sprintf($this->getDefaultLine(),$res);
}
/**
Returns caption of defined list
@param page string|int Current page
@return string HTML caption tag
*/
private function getCaption($page)
{
$caption = $this->getDefaultCaption();
if (!empty($caption)) {
$caption = sprintf(
'
%s - %s
',
$caption,sprintf(__('Page %s'),$page)
);
}
return $caption;
}
}
/**
@ingroup DC_CORE
@nosubgrouping
@brief abstract posts list class.
Handle posts list on admin side
*/
class adminPostList extends adminGenericList
{
public function setColumns()
{
$this->addColumn('title',__('Title'),array('adminPostList','getTitle'),' class="maximal"',false);
$this->addColumn('date',__('Date'),array('adminPostList','getDate'));
$this->addColumn('datetime',__('Date and time'),array('adminPostList','getDateTime'));
$this->addColumn('category',__('Category'),array('adminPostList','getCategory'));
$this->addColumn('author',__('Author'),array('adminPostList','getAuthor'));
$this->addColumn('comment',__('Comments'),array('adminPostList','getComments'));
$this->addColumn('trackback',__('Trackbacks'),array('adminPostList','getTrackbacks'));
$this->addColumn('status',__('Status'),array('adminPostList','getStatus'));
}
protected function getDefaultCaption()
{
return __('Entries list');
}
protected function getDefaultLine()
{
return
'
';
}
}
/**
@ingroup DC_CORE
@nosubgrouping
@brief abstract mini posts list class.
Handle mini posts list on admin side (used for link popup)
*/
class adminPostMiniList extends adminPostList
{
public function setColumns()
{
$this->addColumn('title',__('Title'),array('adminPostList','getTitle'),' class="maximal"',false);
$this->addColumn('date',__('Date'),array('adminPostList','getDate'));
$this->addColumn('author',__('Author'),array('adminPostList','getAuthor'));
$this->addColumn('status',__('Status'),array('adminPostList','getStatus'));
}
protected function getTitle()
{
return
'
'.
form::checkbox(array('entries[]'),$this->rs->post_id,'','','',!$this->rs->isEditable()).' '.
'rs->getURL()).'">'.
html::escapeHTML($this->rs->post_title).'';
}
}
/**
@ingroup DC_CORE
@nosubgrouping
@brief abstract comments list class.
Handle comments list on admin side
*/
class adminCommentList extends adminGenericList
{
public function setColumns()
{
$this->addColumn('title',__('Title'),array('adminCommentList','getTitle'),' class="maximal"',false);
$this->addColumn('date',__('Date'),array('adminCommentList','getDate'));
$this->addColumn('author',__('Author'),array('adminCommentList','getAuthor'));
$this->addColumn('type',__('Type'),array('adminCommentList','getType'));
$this->addColumn('status',__('Status'),array('adminCommentList','getStatus'));
$this->addColumn('edit','',array('adminCommentList','getEdit'));
}
protected function getDefaultCaption()
{
return __('Comments list');
}
protected function getDefaultLine()
{
return
'