Dodaj Nowy Trening
';
// Obsługa zapisu formularza (musi być przed renderowaniem, aby wyświetlić komunikat)
statpress_handle_activity_form_submission();
// Formularz dodawania
statpress_render_add_form();
echo '';
}
function statpress_edit_activity_page() {
global $wpdb;
$activity_id = isset( $_GET['id'] ) ? intval( $_GET['id'] ) : 0;
if ( $activity_id === 0 ) {
echo 'Błąd
Nie podano ID aktywności do edycji.
';
return;
}
// Handle form submission for update
statpress_handle_activity_form_submission();
$table_activities = $wpdb->prefix . 'statpress_activities';
$activity = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $table_activities WHERE id = %d", $activity_id ) );
if ( ! $activity ) {
echo 'Błąd
Nie znaleziono aktywności o podanym ID.
';
return;
}
echo 'Edytuj Trening
';
statpress_render_add_form( $activity );
echo '';
}
/**
* Obsługa zapisu nowego lub edytowanego wpisu do bazy danych
*/
function statpress_handle_activity_form_submission() {
global $wpdb;
// Sprawdź czy formularz został wysłany
if ( ! isset( $_POST['statpress_submit_activity'] ) ) {
return;
}
$activity_id = isset( $_POST['activity_id'] ) ? intval( $_POST['activity_id'] ) : 0;
$nonce_action = $activity_id > 0 ? 'statpress_edit_entry_' . $activity_id : 'statpress_add_entry';
// Weryfikacja bezpieczeństwa (Nonce)
if ( ! isset( $_POST['_wpnonce'] ) || ! wp_verify_nonce( $_POST['_wpnonce'], $nonce_action ) ) {
echo 'Błąd weryfikacji bezpieczeństwa formularza.
';
return;
}
// Use the refactored function to save data.
// We can pass $_POST directly as the function will sanitize it.
$result = statpress_save_activity_data( $_POST, $activity_id );
if ( $activity_id > 0 ) {
$message = 'Trening zaktualizowany pomyślnie!';
} else {
$message = 'Trening dodany pomyślnie!';
}
if ( $result ) {
echo '' . esc_html( $message ) . '
';
} else {
echo 'Wystąpił błąd podczas zapisu do bazy.
';
}
}
/**
* Renderowanie formularza HTML
*/
function statpress_render_add_form( $activity = null ) {
// Enqueue media scripts for the uploader
wp_enqueue_media();
global $wpdb;
$table_categories = $wpdb->prefix . 'statpress_categories';
$table_event_types = $wpdb->prefix . 'statpress_event_types';
$table_equipment = $wpdb->prefix . 'statpress_equipment';
$categories = $wpdb->get_results( "SELECT * FROM $table_categories ORDER BY name ASC" );
$event_types = $wpdb->get_results( "SELECT * FROM $table_event_types ORDER BY name ASC" );
$equipment_list = $wpdb->get_results( "SELECT * FROM $table_equipment ORDER BY name ASC" );
$is_edit_mode = ! is_null( $activity );
$nonce_action = $is_edit_mode ? 'statpress_edit_entry_' . $activity->id : 'statpress_add_entry';
$form_title = $is_edit_mode ? 'Edytuj Aktywność' : 'Dodaj Nową Aktywność';
$button_text = $is_edit_mode ? 'Zaktualizuj Trening' : 'Zapisz Trening';
?>