Split style and css code

This commit is contained in:
2026-01-29 22:00:24 +01:00
parent 3b943a4a72
commit 87da77584f
3 changed files with 152 additions and 37 deletions
+49 -37
View File
@@ -107,6 +107,9 @@ function mystat_activate() {
}
// --- 2. MENU ADMINA I DASHBOARD ---
$mystat_plugin_hooks = [];
add_action( 'admin_menu', 'mystat_add_admin_menu' );
/**
@@ -118,6 +121,21 @@ function mystat_admin_init_setup() {
}
add_action( 'admin_init', 'mystat_admin_init_setup' );
/**
* Enqueue admin-specific CSS.
*
* @param string $hook The current admin page hook.
*/
function mystat_enqueue_admin_styles( $hook ) {
global $mystat_plugin_hooks;
if ( in_array( $hook, $mystat_plugin_hooks, true ) ) {
$plugin_version = '1.0'; // You can use filemtime() for cache-busting in development
wp_enqueue_style( 'mystat-admin-styles', plugin_dir_url( __FILE__ ) . 'assets/css/admin.css', [], $plugin_version );
}
}
add_action( 'admin_enqueue_scripts', 'mystat_enqueue_admin_styles' );
/**
* Add GPX support to WordPress Media Library.
*
@@ -148,7 +166,9 @@ function mystat_fix_gpx_upload_permission( $data, $file, $filename, $mimes ) {
}
function mystat_add_admin_menu() {
add_menu_page(
global $mystat_plugin_hooks;
$mystat_plugin_hooks[] = add_menu_page(
'Moje Statystyki', // Tytuł strony
'Statystyki', // Tytuł w menu
'manage_options', // Wymagane uprawnienia
@@ -158,7 +178,7 @@ function mystat_add_admin_menu() {
6 // Pozycja
);
add_submenu_page(
$mystat_plugin_hooks[] = add_submenu_page(
'moje-statystyki', // Slug rodzica
'Dodaj Nowy Trening', // Tytuł strony
'Nowy trening', // Tytuł w podmenu
@@ -167,7 +187,7 @@ function mystat_add_admin_menu() {
'mystat_add_new_page' // Funkcja renderująca stronę dodawania
);
add_submenu_page(
$mystat_plugin_hooks[] = add_submenu_page(
'moje-statystyki',
'Typy Wydarzeń',
'Typy wydarzeń',
@@ -176,7 +196,7 @@ function mystat_add_admin_menu() {
'mystat_event_types_page'
);
add_submenu_page(
$mystat_plugin_hooks[] = add_submenu_page(
'moje-statystyki',
'Sprzęt',
'Sprzęt',
@@ -185,7 +205,7 @@ function mystat_add_admin_menu() {
'mystat_equipment_page'
);
add_submenu_page(
$mystat_plugin_hooks[] = add_submenu_page(
null, // Ukryta strona, nie pojawia się w menu
'Szczegóły Treningu', // Tytuł strony
'Szczegóły Treningu', // Tytuł w menu (nieistotny)
@@ -194,7 +214,7 @@ function mystat_add_admin_menu() {
'mystat_view_activity_page' // Funkcja renderująca
);
add_submenu_page(
$mystat_plugin_hooks[] = add_submenu_page(
null, // Ukryta strona
'Edytuj Trening', // Tytuł strony
'Edytuj Trening', // Tytuł w menu (nieistotny)
@@ -203,7 +223,7 @@ function mystat_add_admin_menu() {
'mystat_edit_activity_page' // Funkcja renderująca
);
add_submenu_page(
$mystat_plugin_hooks[] = add_submenu_page(
'moje-statystyki', // Slug rodzica
'Podsumowanie Roczne', // Tytuł strony
'Podsumowanie Roczne', // Tytuł w podmenu
@@ -212,7 +232,7 @@ function mystat_add_admin_menu() {
'mystat_yearly_summary_page'// Funkcja renderująca
);
add_submenu_page(
$mystat_plugin_hooks[] = add_submenu_page(
'moje-statystyki', // Slug rodzica
'Infografika', // Tytuł strony
'Infografika', // Tytuł w podmenu
@@ -221,7 +241,7 @@ function mystat_add_admin_menu() {
'mystat_infographic_page' // Funkcja renderująca
);
add_submenu_page(
$mystat_plugin_hooks[] = add_submenu_page(
'moje-statystyki', // Slug rodzica
'Import CSV', // Tytuł strony
'Import CSV', // Tytuł w podmenu
@@ -877,12 +897,6 @@ function mystat_infographic_page() {
</div>
</div>
</div>
<style>
.mystat-infographic-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; }
.mystat-infographic-card { background: #fff; border: 1px solid #e0e0e0; border-radius: 5px; padding: 15px; text-align: center; box-shadow: 0 2px 4px rgba(0,0,0,0.05); }
.mystat-infographic-card h3 { margin-top: 0; color: #555; font-size: 1.1em; }
.mystat-infographic-card p { font-size: 1.8em; font-weight: bold; color: #333; margin-bottom: 0; }
</style>
<?php
}
@@ -1320,7 +1334,7 @@ function mystat_view_activity_page() {
<div class="postbox" style="margin-top: 20px;">
<div class="postbox-header"><h2 class="hndle">Podsumowanie</h2></div>
<div class="inside">
<div id="mystat-details-container" class="wp-clearfix">
<div id="mystat-details-container">
<div class="mystat-details-col">
<h3>Główne dane</h3>
<table class="form-table">
@@ -1384,11 +1398,6 @@ function mystat_view_activity_page() {
</div>
</div>
</div>
<style>
.mystat-details-col { float: left; width: 49%; }
.mystat-details-col:first-child { margin-right: 2%; }
@media screen and (max-width: 782px) { .mystat-details-col { float: none; width: 100%; margin-right: 0; } }
</style>
<?php
}
@@ -1808,6 +1817,21 @@ function mystat_render_history_table() {
<?php
// --- 3. SHORTCODE DO WYŚWIETLANIA NA FRONCIE ---
/**
* Registers styles for frontend and enqueues them when shortcodes are used.
*/
function mystat_enqueue_frontend_assets() {
// Register the stylesheet. It will be enqueued by the shortcodes when needed.
$plugin_version = '1.0';
wp_register_style(
'mystat-frontend-styles',
plugin_dir_url( __FILE__ ) . 'assets/css/frontend.css',
[],
$plugin_version
);
}
add_action( 'wp_enqueue_scripts', 'mystat_enqueue_frontend_assets' );
/**
* Rejestruje shortcode [moje_statystyki].
*/
@@ -1823,6 +1847,8 @@ add_action( 'init', 'mystat_register_shortcode' );
* @return string HTML do wyświetlenia.
*/
function mystat_shortcode_handler( $atts ) {
wp_enqueue_style( 'mystat-frontend-styles' );
global $wpdb;
// Ustawienie domyślnych atrybutów (bieżący rok i miesiąc)
@@ -1914,12 +1940,6 @@ function mystat_shortcode_handler( $atts ) {
</tbody>
</table>
</div>
<style>
.mystats-shortcode-container table { width: 100%; border-collapse: collapse; margin-bottom: 2em; }
.mystats-shortcode-container th, .mystats-shortcode-container td { padding: 8px 12px; border: 1px solid #ddd; text-align: left; }
.mystats-shortcode-container th { background-color: #f4f4f4; }
.mystats-activity-table td:nth-child(4), .mystats-activity-table td:nth-child(5) { text-align: right; }
</style>
<?php
// Zwrócenie zawartości bufora
return ob_get_clean();
@@ -1933,6 +1953,8 @@ function mystat_shortcode_handler( $atts ) {
* @return string HTML do wyświetlenia.
*/
function mystat_single_activity_shortcode_handler( $atts ) {
wp_enqueue_style( 'mystat-frontend-styles' );
global $wpdb;
$atts = shortcode_atts( array(
@@ -2089,16 +2111,6 @@ function mystat_single_activity_shortcode_handler( $atts ) {
</div>
<?php endif; ?>
</div>
<style>
.mystat-single-activity-shortcode { border: 1px solid #eee; padding: 15px; margin-bottom: 1.5em; border-radius: 5px; background: #f9f9f9; }
.mystat-single-activity-shortcode h4 { margin-top: 0; }
.mystat-single-activity-shortcode p em { color: #777; font-size: 0.9em; }
.mystat-single-columns-container { display: flex; flex-wrap: wrap; gap: 30px; margin-bottom: 15px; }
.mystat-single-col { flex: 1; min-width: 240px; }
.mystat-single-summary-table { width: 100%; border-collapse: collapse; }
.mystat-single-summary-table th, .mystat-single-summary-table td { padding: 4px 0; border: none; text-align: left; vertical-align: top; }
.mystat-single-summary-table th { font-weight: bold; padding-right: 1em; white-space: nowrap; width: 1%; }
</style>
<?php
return ob_get_clean();
}