background-color: {{VALUE}};',
'{{WRAPPER}} .ea-advanced-data-table-pagination a.ea-adtp-current' => 'background-color: {{VALUE}};',
'{{WRAPPER}} .ea-advanced-data-table-pagination select:hover' => 'background-color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'ea_adv_data_table_pagination_border_hover',
'label' => __('Border', 'essential-addons-for-elementor-lite'),
'fields_options' => [
'border' => [
'default' => 'solid',
],
'width' => [
'default' => [
'unit' => 'px',
'top' => '1',
'right' => '1',
'bottom' => '1',
'left' => '1',
'isLinked' => true,
],
],
'color' => [
'default' => '#eeeeee',
],
],
'selector' => '{{WRAPPER}} .ea-advanced-data-table-pagination a:hover, {{WRAPPER}} .ea-advanced-data-table-pagination a.ea-adtp-current, {{WRAPPER}} .ea-advanced-data-table-pagination select:hover',
]
);
$this->add_control(
'ea_adv_data_table_pagination_border_radius_hover',
[
'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'selectors' => [
'{{WRAPPER}} .ea-advanced-data-table-pagination a:hover' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .ea-advanced-data-table-pagination a.ea-adtp-current' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .ea-advanced-data-table-pagination select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->end_controls_section();
$this->start_controls_section(
'ea_section_adv_data_table_style_button',
[
'label' => __('Button', 'essential-addons-for-elementor-lite'),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'ea_adv_data_table_source' => 'ninja'
]
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'ea_adv_data_table_button_typography',
'label' => __('Typography', 'essential-addons-for-elementor-lite'),
'selector' => '{{WRAPPER}} td button, {{WRAPPER}} td .button',
]
);
$this->start_controls_tabs('ea_adv_data_table_button_tabs');
$this->start_controls_tab('ea_adv_data_table_button_tab_normal', ['label' => esc_html__('Normal', 'essential-addons-for-elementor-lite')]);
$this->add_control(
'ea_adv_data_table_button_color',
[
'label' => __('Color', 'essential-addons-for-elementor-lite'),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} td button' => 'color: {{VALUE}};',
'{{WRAPPER}} td .button' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'ea_adv_data_table_button_background_color',
[
'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} td button' => 'background-color: {{VALUE}};',
'{{WRAPPER}} td .button' => 'background-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab('ea_adv_data_table_button_tab_hover', ['label' => esc_html__('Hover', 'essential-addons-for-elementor-lite')]);
$this->add_control(
'ea_adv_data_table_button_color_hover',
[
'label' => __('Color', 'essential-addons-for-elementor-lite'),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} td button:hover' => 'color: {{VALUE}};',
'{{WRAPPER}} td .button:hover' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'ea_adv_data_table_button_background_color_hover',
[
'label' => __('Background Color', 'essential-addons-for-elementor-lite'),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} td button:hover' => 'background-color: {{VALUE}};',
'{{WRAPPER}} td .button:hover' => 'background-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'ea_adv_data_table_button_border',
'label' => __('Border', 'essential-addons-for-elementor-lite'),
'fields_options' => [
'border' => [
'default' => '',
],
'width' => [
'default' => [
'unit' => 'px',
'isLinked' => true,
],
],
'color' => [
'default' => '',
],
],
'selector' => '{{WRAPPER}} td button, {{WRAPPER}} td .button',
]
);
$this->add_control(
'ea_adv_data_table_button_border_radius',
[
'label' => __('Border Radius', 'essential-addons-for-elementor-lite'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'selectors' => [
'{{WRAPPER}} td button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} td .button' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'ea_adv_data_table_button_box_shadow',
'label' => __('Box Shadow', 'essential-addons-for-elementor-lite'),
'selector' => '{{WRAPPER}} td button, {{WRAPPER}} td .button',
]
);
$this->add_control(
'ea_adv_data_table_button_border_padding',
[
'label' => __('Padding', 'essential-addons-for-elementor-lite'),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => ['px'],
'selectors' => [
'{{WRAPPER}} td button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} td .button' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->end_controls_section();
}
protected function render()
{
$settings = $this->get_settings_for_display();
if (in_array($settings['ea_adv_data_table_source'], ['database', 'remote', 'google'])) {
if (!apply_filters('eael/pro_enabled', false)) {
return;
}
} else if ($settings['ea_adv_data_table_source'] == "tablepress") {
if (!apply_filters('eael/pro_enabled', false)) {
return;
}
if (!apply_filters('eael/is_plugin_active', 'tablepress/tablepress.php')) {
return;
}
} else if ($settings['ea_adv_data_table_source'] == "ninja") {
if (!apply_filters('eael/is_plugin_active', 'ninja-tables/ninja-tables.php')) {
return;
}
}
$this->add_render_attribute('ea-adv-data-table-wrap', [
'class' => "ea-advanced-data-table-wrap",
'data-id' => $this->get_id(),
]);
$this->add_render_attribute('ea-adv-data-table', [
'class' => "ea-advanced-data-table ea-advanced-data-table-{$settings['ea_adv_data_table_source']} ea-advanced-data-table-{$this->get_id()}",
'data-id' => $this->get_id(),
]);
if (Plugin::$instance->editor->is_edit_mode()) {
$this->add_render_attribute('ea-adv-data-table', [
'class' => "ea-advanced-data-table-editable",
]);
}
if ($settings['ea_adv_data_table_sort'] == 'yes') {
$this->add_render_attribute('ea-adv-data-table', [
'class' => "ea-advanced-data-table-sortable",
]);
}
if ($settings['ea_adv_data_table_pagination'] == 'yes') {
$this->add_render_attribute('ea-adv-data-table', [
'class' => "ea-advanced-data-table-paginated",
'data-items-per-page' => ! empty( $settings['ea_adv_data_table_items_per_page'] ) ? $settings['ea_adv_data_table_items_per_page'] : 10,
]);
}
if ($settings['ea_adv_data_table_search'] == 'yes') {
$this->add_render_attribute('ea-adv-data-table', [
'class' => "ea-advanced-data-table-searchable",
]);
$this->add_render_attribute('ea-adv-data-table-search-wrap', [
'class' => "ea-advanced-data-table-search-wrap ea-advanced-data-table-search-{$settings['ea_adv_data_table_search_alignment']}",
]);
}
echo '
get_render_attribute_string('ea-adv-data-table-wrap') . '>';
if ($content = $this->get_table_content()) {
if ($settings['ea_adv_data_table_search'] == 'yes') {
echo '
get_render_attribute_string('ea-adv-data-table-search-wrap') . '>
';
}
echo '
get_render_attribute_string('ea-adv-data-table') . '>' . Helper::eael_wp_kses( $content ) . '
';
if ($settings['ea_adv_data_table_pagination'] == 'yes') {
if (Plugin::$instance->editor->is_edit_mode()) {
if ($settings['ea_adv_data_table_pagination_type'] == 'button') {
echo '';
} else {
echo '';
}
} else {
echo '';
}
}
} else {
$no_content = apply_filters( 'eael/advanced-data-table/no-content-found-text', __( 'No content found', 'essential-addons-for-elementor-lite' ) );
echo esc_html( $no_content );
}
echo '
';
}
public function get_table_content()
{
$settings = $this->get_settings_for_display();
if ($settings['ea_adv_data_table_source'] == 'static') {
return $settings['ea_adv_data_table_static_html'];
} else if ($settings['ea_adv_data_table_source'] == 'ninja') {
return $this->ninja_integration();
}
if ( $settings[ 'ea_adv_data_table_source' ] == 'remote' ) {
$settings_legacy = $this->get_settings();
$settings[ 'ea_adv_data_table_source_remote_host' ] = $settings_legacy[ 'ea_adv_data_table_source_remote_host' ];
$settings[ 'ea_adv_data_table_source_remote_username' ] = $settings_legacy[ 'ea_adv_data_table_source_remote_username' ];
$settings[ 'ea_adv_data_table_source_remote_password' ] = $settings_legacy[ 'ea_adv_data_table_source_remote_password' ];
$settings[ 'ea_adv_data_table_source_remote_database' ] = $settings_legacy[ 'ea_adv_data_table_source_remote_database' ];
}
$content = apply_filters('eael/advanced-data-table/table_html/integration/' . $settings['ea_adv_data_table_source'], $settings);
if (is_array($content)) {
return '';
}
return $content;
}
public function ninja_integration()
{
$settings = $this->get_settings_for_display();
if (empty($settings['ea_adv_data_table_source_ninja_table_id'])) {
return;
}
$html = '';
$table_settings = ninja_table_get_table_settings($settings['ea_adv_data_table_source_ninja_table_id']);
$table_headers = ninja_table_get_table_columns($settings['ea_adv_data_table_source_ninja_table_id']);
$table_rows = ninjaTablesGetTablesDataByID($settings['ea_adv_data_table_source_ninja_table_id']);
if (!empty($table_rows)) {
if (!isset($table_settings['hide_header_row']) || $table_settings['hide_header_row'] != true) {
$html .= '
';
foreach ($table_headers as $key => $th) {
$style = isset($settings['ea_adv_data_table_dynamic_th_width']) && isset($settings['ea_adv_data_table_dynamic_th_width'][$key]) ? ' style="width:' . $settings['ea_adv_data_table_dynamic_th_width'][$key] . '"' : '';
$html .= '' . $th['name'] . ' | ';
}
$html .= '
';
}
$html .= '
';
foreach ($table_rows as $key => $tr) {
$html .= '';
foreach ($table_headers as $th) {
if (!isset($th['data_type'])) {
$th['data_type'] = '';
}
if ($th['data_type'] == 'image') {
$html .= '' . (isset($tr[$th['key']]['image_thumb']) ? '' : '') . ' | ';
} elseif ($th['data_type'] == 'selection') {
$html .= '' . (!empty($tr[$th['key']]) ? implode((array) $tr[$th['key']], ', ') : '') . ' | ';
} elseif ($th['data_type'] == 'button') {
$html .= '' . (!empty($tr[$th['key']]) ? '' . $th['button_text'] . '' : '') . ' | ';
} else {
$html .= '' . ( isset( $tr[ $th['key'] ] ) ? $tr[ $th['key'] ] : '' ) . ' | ';
}
}
$html .= '
';
}
$html .= '';
}
return $html;
}
}