Loading...
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 '
« 1 2 »
'; } 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; } }