table_data = $table_data;
parent::__construct(
array(
'singular' => 'forum',
'plural' => 'forums',
'ajax' => false
)
);
}
public function column_default($item, $column_name) {
return $item[$column_name];
}
public function column_name($item) {
$forumIcon = trim(esc_html(stripslashes($item['icon'])));
$forumIcon = (empty($forumIcon)) ? 'fas fa-comments' : $forumIcon;
$columnHTML = '';
$columnHTML .= '';
$columnHTML .= '';
$columnHTML .= '';
$columnHTML .= '';
$columnHTML .= '';
$columnHTML .= '';
if ($item['parent_forum']) {
$columnHTML .= '
';
} else {
$columnHTML .= '
';
}
$columnHTML .= '
';
$forum_icon = trim(esc_html(stripslashes($item['icon'])));
$forum_icon = (empty($forum_icon)) ? 'fas fa-comments' : $forum_icon;
$columnHTML .= '';
$columnHTML .= esc_html(stripslashes($item['name'])).' ('.__('ID', 'asgaros-forum').': '.$item['id'].')';
$columnHTML .= '
';
$columnHTML .= '
';
if (empty($item['description'])) {
$columnHTML .= ''.__('No description yet ...', 'asgaros-forum').'';
} else {
$columnHTML .= stripslashes($item['description']);
}
$columnHTML .= '';
$columnHTML .= '
';
$columnHTML .= '
';
return $columnHTML;
}
public function column_status($item) {
// Available options for forum-status.
$forum_status_options = array(
'normal' => __('Normal', 'asgaros-forum'),
'closed' => __('Closed', 'asgaros-forum'),
'approval' => __('Approval', 'asgaros-forum'),
);
$forum_status_options = apply_filters('asgarosforum_filter_forum_status_options', $forum_status_options);
if (!empty($forum_status_options[$item['forum_status']])) {
return $forum_status_options[$item['forum_status']];
}
}
public function column_actions($item) {
$actionHTML = '';
$actionHTML .= '
';
$actionHTML .= __('Delete Forum', 'asgaros-forum');
$actionHTML .= '';
$actionHTML .= ' · ';
$actionHTML .= '
';
$actionHTML .= __('Edit Forum', 'asgaros-forum');
$actionHTML .= '';
if (!$item['parent_forum']) {
$actionHTML .= ' · ';
$actionHTML .= '
';
$actionHTML .= __('Add Sub-Forum', 'asgaros-forum');
$actionHTML .= '';
}
return $actionHTML;
}
public function get_columns() {
$columns = array(
'name' => __('Name:', 'asgaros-forum'),
'status' => __('Status:', 'asgaros-forum'),
'sort' => __('Order:', 'asgaros-forum'),
'actions' => __('Actions:', 'asgaros-forum')
);
return $columns;
}
public function prepare_items() {
global $asgarosforum;
$columns = $this->get_columns();
$this->_column_headers = array($columns);
$data = array();
foreach ($this->table_data as $forum) {
$data[] = $forum;
if ($forum['count_subforums'] > 0) {
$subforums = $asgarosforum->get_forums($forum['parent_id'], $forum['id'], ARRAY_A);
if (!empty($subforums)) {
foreach ($subforums as $subforum) {
$data[] = $subforum;
}
}
}
}
$this->items = $data;
}
}