* @license GPL-2.0+
* @link https://arlo.co
* @copyright 2018 Arlo
*/
require_once 'class-arlo-for-wordpress-lists.php';
class Arlo_For_Wordpress_OnlineActivities extends Arlo_For_Wordpress_Lists {
const TABLENAME = 'arlo_onlineactivities';
public function __construct() {
$this->singular = __( 'Online activity', 'arlo-for-wordpress' );
$this->plural = __( 'Online activities', 'arlo-for-wordpress' );
parent::__construct();
}
public function get_title() {
$title = parent::get_title();
$et_id = filter_input(INPUT_GET, 'et_id', FILTER_SANITIZE_STRING);
if (!empty($et_id) && !empty(self::$filter_column_mapping['et_id']) && intval($et_id > 0) && !empty($this->items[0]->et_name)) {
$title .= ' for template: ' . $this->items[0]->et_name;
}
return $title;
}
public function set_table_name() {
$this->table_name = $this->wpdb->prefix . self::TABLENAME . ' AS oa';
}
public function get_columns() {
return $columns = [
'oa_code' => __( 'Code', 'arlo-for-wordpress' ),
'oa_name' => __( 'Name', 'arlo-for-wordpress' ),
'oa_delivery_description' => __( 'Delivery desc.', 'arlo-for-wordpress' ),
'oa_region' => __( 'Regions', 'arlo-for-wordpress' ),
];
}
public function get_hidden_columns() {
return array();
}
public function get_sortable_columns() {
return array(
'oa_code' => array( 'oa_code', true ),
'oa_name' => array( 'oa_name', true ),
);
}
public function column_default($item, $column_name) {
switch ($column_name) {
case 'oa_code':
case 'oa_region':
case 'oa_delivery_description':
return esc_html($item->$column_name);
case 'oa_name':
$field = '
' . esc_html($item->oa_name) . '
';
if (!empty($item->oa_registeruri))
$field .= '';
return $field;
default:
return '';
}
}
function column_oa_code($item) {
$actions = array(
'edit' => sprintf('Edit', esc_attr($this->platform_url), $item->oa_arlo_id),
);
if (!empty($item->guid)) {
$actions['view'] = sprintf('View', $item->guid);
}
return sprintf('%1$s %2$s', esc_html($item->oa_code), $this->row_actions($actions) );
}
protected function get_sql_where_array() {
return [
"oa.import_id = " . $this->import_id,
];
}
protected function get_searchable_fields() {
return [
'oa_code',
'oa_name',
'oa_delivery_description',
];
}
public function get_sql_query() {
$where = $this->get_sql_where_expression();
return "
SELECT
oa.oa_arlo_id,
oa.oa_code,
oa.oa_name,
oa.oa_delivery_description,
oa_registeruri,
oa_registermessage,
et_name,
(SELECT GROUP_CONCAT(oa_region) FROM " . $this->wpdb->prefix . "arlo_onlineactivities WHERE oa_arlo_id = oa.oa_arlo_id AND oa.oa_region != 'NULL' AND oa_region != 'NULL' GROUP BY oa_arlo_id) AS oa_region,
posts.guid
FROM
" . $this->table_name . "
LEFT JOIN
" . $this->wpdb->prefix . "arlo_eventtemplates AS et
ON
oat_arlo_id = et_arlo_id
LEFT JOIN
" . $this->wpdb->prefix . "posts AS posts
ON
et.et_post_id = posts.ID
WHERE
" . $where . "
GROUP BY
oa.oa_arlo_id
";
}
public function get_new_link() {
return esc_url(sprintf('https://%s/management/Console/#/onlineactivities/new/', $this->platform_url));
}
public function get_list_link() {
return esc_url(sprintf('https://%s/management/Console/#/onlineactivities/', $this->platform_url));
}
}