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; } }