StatPress Dashboard
';
// --- MIGRATION NOTICE ---
// Show the migration button if it hasn't been completed yet.
if ( ! get_option( 'statpress_migration_complete' ) ) {
$migration_url = wp_nonce_url(
admin_url( 'admin.php?page=statpress-dashboard&action=statpress_migrate_data' ),
'statpress_migration_nonce'
);
echo '';
echo '
Migracja danych StatPress
';
echo '
Wygląda na to, że istnieją dane w starych tabelach (mystat_*), które można przenieść. Kliknij przycisk poniżej, aby rozpocząć proces.
';
echo '
Ważne: Ta operacja jest jednorazowa i powinna być wykonana tylko raz, na pustej instalacji wtyczki StatPress.
';
echo '
Rozpocznij migrację danych';
echo '
';
}
// Show the results of the migration after it's done.
$migration_results = get_transient( 'statpress_migration_results' );
if ( $migration_results ) {
echo '';
echo '
Migracja zakończona!
';
echo '
';
echo '
Twoje dane powinny być teraz widoczne. Stare tabele (' . esc_html( $GLOBALS['wpdb']->prefix ) . 'mystat_*) wciąż istnieją w bazie danych, ale nie są już używane. Możesz je usunąć ręcznie (np. przez phpMyAdmin), jeśli wszystko działa poprawnie.
';
echo '
';
delete_transient( 'statpress_migration_results' );
}
// --- END MIGRATION NOTICE ---
statpress_render_history_table();
echo '';
}
function statpress_render_history_table() {
global $wpdb;
// Definicje nazw tabel (z uwzględnieniem prefixu WP, jeśli był użyty przy tworzeniu)
// Zakładam, że tabele nazywają się dokładnie tak jak w dokumentacji, ale dobrą praktyką jest $wpdb->prefix
// Jeśli tabele są "sztywne" (bez prefixu wp_), usuń $wpdb->prefix.
$table_activities = $wpdb->prefix . 'statpress_activities';
$table_categories = $wpdb->prefix . 'statpress_categories';
// --- 1. OBSŁUGA USUWANIA (DELETE) ---
if ( isset( $_GET['action'], $_GET['id'], $_GET['_wpnonce'] ) && 'statpress_delete' === $_GET['action'] ) {
$activity_id = intval( $_GET['id'] );
// Weryfikacja bezpieczeństwa (Nonce)
if ( wp_verify_nonce( $_GET['_wpnonce'], 'statpress_delete_' . $activity_id ) ) {
$result = $wpdb->delete(
$table_activities,
array( 'id' => $activity_id ),
array( '%d' )
);
if ( $result ) {
echo 'Aktywność została usunięta.
';
} else {
echo 'Wystąpił błąd podczas usuwania.
';
}
} else {
echo 'Błąd weryfikacji bezpieczeństwa (Nonce).
';
}
}
// --- 2. USTAWIENIA PAGINACJI ---
$items_per_page = 20; // Ile wpisów na stronę
$current_page = isset( $_GET['paged'] ) ? max( 1, intval( $_GET['paged'] ) ) : 1;
$offset = ( $current_page - 1 ) * $items_per_page;
// --- 3. POBIERANIE DANYCH (SELECT) ---
// Pobranie całkowitej liczby wpisów do paginacji
$total_items = $wpdb->get_var( "SELECT COUNT(id) FROM $table_activities" );
$total_pages = ceil( $total_items / $items_per_page );
// Pobieramy wpisy dla bieżącej strony
$sql = $wpdb->prepare(
"
SELECT a.*, c.name as category_name, c.icon, c.color, et.name as event_type_name, eq.name as equipment_name
FROM $table_activities a
LEFT JOIN $table_categories c ON a.category_id = c.id
LEFT JOIN {$wpdb->prefix}statpress_event_types et ON a.event_type_id = et.id
LEFT JOIN {$wpdb->prefix}statpress_equipment eq ON a.equipment_id = eq.id
ORDER BY a.date DESC, a.id DESC
LIMIT %d OFFSET %d
",
$items_per_page,
$offset
);
$activities = $wpdb->get_results( $sql );
// --- 4. WIDOK TABELI (HTML) ---
?>
Historia Aktywności
1 ) : ?>
aktywności
add_query_arg( 'paged', '%#%' ),
'format' => '',
'total' => $total_pages,
'current' => $current_page,
'prev_text' => '« Poprzednia',
'next_text' => 'Następna »',
)
);
?>
| Ikona |
Data |
Tytuł |
Kategoria |
Typ |
Sprzęt |
Dystans (km) |
Czas |
Śr. prędkość |
Akcja |
'statpress_delete',
'id' => $row->id,
)
),
'statpress_delete_' . $row->id
);
$edit_url = add_query_arg(
array(
'page' => 'statpress-edit-activity',
'id' => $row->id,
),
admin_url( 'admin.php' )
);
$details_url = add_query_arg(
array(
'page' => 'statpress-view-activity',
'id' => $row->id,
),
admin_url( 'admin.php' )
);
?>
|
icon ) ) : ?>
|
date ); ?> |
title ? wp_trim_words( $row->title, 6 ) : '(bez tytułu)' ); ?> |
category_name ); ?> |
event_type_name ); ?> |
equipment_name ); ?> |
distance, 2, ',', ' ' ); ?> |
duration ); ?> |
avg_speed ? number_format( $row->avg_speed, 1, ',', ' ' ) . ' km/h' : '-'; ?> |
Edytuj
Szczegóły
Usuń
|
| Brak zarejestrowanych aktywności. Dodaj pierwszy trening powyżej! |
1 ) : ?>
aktywności
add_query_arg( 'paged', '%#%' ),
'format' => '',
'total' => $total_pages,
'current' => $current_page,
'prev_text' => '« Poprzednia',
'next_text' => 'Następna »',
)
);
?>