Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 79b798d5fe | |||
| ea1331c266 | |||
| 903333cac3 | |||
| 446e08dc91 | |||
| 231cf8fc6c |
@@ -108,7 +108,6 @@ function minecraft_modern_scripts() {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// === NEU & WICHTIG: Header-Skript-Informationen übergeben ===
|
|
||||||
// Dies verhindert das Flackern im Customizer.
|
// Dies verhindert das Flackern im Customizer.
|
||||||
wp_localize_script(
|
wp_localize_script(
|
||||||
'minecraft-modern-header-script', // <-- Richtiges Skript-Handle!
|
'minecraft-modern-header-script', // <-- Richtiges Skript-Handle!
|
||||||
@@ -123,6 +122,9 @@ add_action( 'wp_enqueue_scripts', 'minecraft_modern_scripts' );
|
|||||||
// === Customizer-Datei laden ===
|
// === Customizer-Datei laden ===
|
||||||
require get_template_directory() . '/inc/customizer.php';
|
require get_template_directory() . '/inc/customizer.php';
|
||||||
|
|
||||||
|
// === Theme-Updater-Datei laden ===
|
||||||
|
require get_template_directory() . '/inc/theme-updater.php';
|
||||||
|
|
||||||
// === Footer-Widgets registrieren ===
|
// === Footer-Widgets registrieren ===
|
||||||
function minecraft_modern_footer_widgets() {
|
function minecraft_modern_footer_widgets() {
|
||||||
register_sidebar( array(
|
register_sidebar( array(
|
||||||
@@ -199,7 +201,7 @@ function create_faq_post_type() {
|
|||||||
add_action('init', 'create_faq_post_type');
|
add_action('init', 'create_faq_post_type');
|
||||||
|
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
// NEU: Automatische "Home" Seitenerstellung und Zuweisung (kombiniert)
|
// ===== Automatische "Home" Seitenerstellung und Zuweisung (kombiniert) =======
|
||||||
// =============================================================================
|
// =============================================================================
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -300,7 +302,7 @@ add_filter( 'template_include', 'load_faq_page_template' );
|
|||||||
|
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// === CUSTOM LOGIN FUNCTIONS (KOMPLETT NEU & KORRIGIERT) ==========
|
// === CUSTOM LOGIN FUNCTIONS =============================================
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
||||||
// Lädt alle notwendigen Styles und Scripts nur für die Login-Seite
|
// Lädt alle notwendigen Styles und Scripts nur für die Login-Seite
|
||||||
|
|||||||
@@ -85,22 +85,9 @@ function minecraft_modern_customize_register( $wp_customize ) {
|
|||||||
) );
|
) );
|
||||||
|
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
// === NEU: Slider-Effekt-Einstellungen ===================================
|
// === ENTFERNT: Slider-Effekt-Einstellungen ==============================
|
||||||
// =========================================================================
|
// =========================================================================
|
||||||
|
|
||||||
$wp_customize->add_setting( 'slider_effect', array( 'default' => 'fade', 'sanitize_callback' => 'sanitize_key' ) );
|
|
||||||
$wp_customize->add_control( 'slider_effect', array(
|
|
||||||
'label' => 'Slider-Effekt', 'section' => 'header_slider', 'settings' => 'slider_effect', 'type' => 'select',
|
|
||||||
'choices' => array( 'slide' => 'Horizontales Gleiten', 'fade' => 'Überblenden', 'cube' => 'Würfel-Effekt' ),
|
|
||||||
) );
|
|
||||||
|
|
||||||
$wp_customize->add_setting( 'slider_direction', array( 'default' => 'horizontal', 'sanitize_callback' => 'sanitize_key' ) );
|
|
||||||
$wp_customize->add_control( 'slider_direction', array(
|
|
||||||
'label' => 'Slider-Richtung (nur für "Gleiten")', 'section' => 'header_slider', 'settings' => 'slider_direction', 'type' => 'select',
|
|
||||||
'choices' => array( 'horizontal' => 'Horizontal', 'vertical' => 'Vertikal' ),
|
|
||||||
) );
|
|
||||||
|
|
||||||
|
|
||||||
// --- Sektion: Startseiten-Hero (Fallback) ---
|
// --- Sektion: Startseiten-Hero (Fallback) ---
|
||||||
$wp_customize->add_section( 'hero_section', array(
|
$wp_customize->add_section( 'hero_section', array(
|
||||||
'title' => 'Startseiten-Hero (wenn Slider deaktiviert)',
|
'title' => 'Startseiten-Hero (wenn Slider deaktiviert)',
|
||||||
|
|||||||
125
Minecraft-Modern-Theme/inc/theme-updater.php
Normal file
125
Minecraft-Modern-Theme/inc/theme-updater.php
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
// Exit if accessed directly.
|
||||||
|
if ( ! defined( 'ABSPATH' ) ) {
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// === ZENTRALE VERSIONSKONSTANTE ===
|
||||||
|
// Bitte passen Sie diese Version bei jedem Release an!
|
||||||
|
define( 'MINECRAFT_MODERN_THEME_VERSION', '1.4' );
|
||||||
|
|
||||||
|
|
||||||
|
// === THEME UPDATE NOTIFICATION SYSTEM ===
|
||||||
|
|
||||||
|
// Funktion zum Abrufen der neuesten Release-Informationen vom Git-Repository
|
||||||
|
function minecraft_modern_get_latest_release_info() {
|
||||||
|
$transient_key = 'minecraft_modern_latest_release';
|
||||||
|
|
||||||
|
// Versuche, die Daten aus dem Transient-Cache zu holen
|
||||||
|
$release_info = get_transient($transient_key);
|
||||||
|
|
||||||
|
// Wenn der Cache leer oder abgelaufen ist, rufe neue Daten ab
|
||||||
|
if (false === $release_info) {
|
||||||
|
$response = wp_remote_get('https://git.viper.ipv64.net/api/v1/repos/M_Viper/Minecraft-Modern-Theme/releases/latest');
|
||||||
|
|
||||||
|
if (!is_wp_error($response) && 200 === wp_remote_retrieve_response_code($response)) {
|
||||||
|
$body = wp_remote_retrieve_body($response);
|
||||||
|
$release_data = json_decode($body, true);
|
||||||
|
|
||||||
|
if ($release_data && isset($release_data['tag_name'])) {
|
||||||
|
$release_info = array(
|
||||||
|
'version' => $release_data['tag_name'],
|
||||||
|
'download_url' => $release_data['zipball_url'],
|
||||||
|
'release_notes' => isset($release_data['body']) ? $release_data['body'] : '',
|
||||||
|
'published_at' => isset($release_data['published_at']) ? $release_data['published_at'] : ''
|
||||||
|
);
|
||||||
|
|
||||||
|
// Speichere die Daten für 12 Stunden im Cache
|
||||||
|
set_transient($transient_key, $release_info, 12 * HOUR_IN_SECONDS);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Bei Fehler, leere Daten für 1 Stunde cachen, um wiederholte fehlgeschlagene Anfragen zu vermeiden
|
||||||
|
set_transient($transient_key, array(), HOUR_IN_SECONDS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $release_info;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funktion zum Anzeigen der Update-Benachrichtigung im Admin-Bereich
|
||||||
|
function minecraft_modern_show_update_notification() {
|
||||||
|
// Nur im Admin-Bereich und für Administratoren anzeigen
|
||||||
|
if (!is_admin() || !current_user_can('manage_options')) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Aktuelle Theme-Version abrufen (JETZT AUS UNSERER KONSTANTE)
|
||||||
|
$current_version = MINECRAFT_MODERN_THEME_VERSION;
|
||||||
|
|
||||||
|
// Neueste Release-Informationen abrufen
|
||||||
|
$latest_release = minecraft_modern_get_latest_release_info();
|
||||||
|
|
||||||
|
// Wenn wir gültige Release-Informationen haben und die Versionen unterschiedlich sind
|
||||||
|
if (!empty($latest_release) && isset($latest_release['version']) && version_compare($current_version, $latest_release['version'], '<')) {
|
||||||
|
?>
|
||||||
|
<div class="notice notice-warning is-dismissible">
|
||||||
|
<h3><?php _e('Minecraft Modern Theme Update Available', 'minecraft-modern-theme'); ?></h3>
|
||||||
|
<p>
|
||||||
|
<?php
|
||||||
|
printf(
|
||||||
|
__('You are using version %1$s of the Minecraft Modern Theme. Version %2$s is now available.', 'minecraft-modern-theme'),
|
||||||
|
'<strong>' . esc_html($current_version) . '</strong>',
|
||||||
|
'<strong>' . esc_html($latest_release['version']) . '</strong>'
|
||||||
|
);
|
||||||
|
?>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a href="<?php echo esc_url($latest_release['download_url']); ?>" class="button button-primary" target="_blank">
|
||||||
|
<?php _e('Download Latest Version', 'minecraft-modern-theme'); ?>
|
||||||
|
</a>
|
||||||
|
<a href="https://git.viper.ipv64.net/M_Viper/Minecraft-Modern-Theme/releases" class="button" target="_blank">
|
||||||
|
<?php _e('View Release Notes', 'minecraft-modern-theme'); ?>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
add_action('admin_notices', 'minecraft_modern_show_update_notification');
|
||||||
|
|
||||||
|
// Funktion zum Hinzufügen eines Update-Status-Widgets zum Dashboard
|
||||||
|
function minecraft_modern_add_dashboard_widget() {
|
||||||
|
wp_add_dashboard_widget(
|
||||||
|
'minecraft_modern_update_widget', // Widget slug.
|
||||||
|
'Minecraft Modern Theme Status', // Title.
|
||||||
|
'minecraft_modern_update_widget_function' // Display function.
|
||||||
|
);
|
||||||
|
}
|
||||||
|
add_action('wp_dashboard_setup', 'minecraft_modern_add_dashboard_widget');
|
||||||
|
|
||||||
|
// Funktion zum Anzeigen des Inhalts im Dashboard-Widget
|
||||||
|
function minecraft_modern_update_widget_function() {
|
||||||
|
// Aktuelle Theme-Version abrufen (JETZT AUS UNSERER KONSTANTE)
|
||||||
|
$current_version = MINECRAFT_MODERN_THEME_VERSION;
|
||||||
|
|
||||||
|
// Neueste Release-Informationen abrufen
|
||||||
|
$latest_release = minecraft_modern_get_latest_release_info();
|
||||||
|
|
||||||
|
echo '<p><strong>' . __('Current Version:', 'minecraft-modern-theme') . '</strong> ' . esc_html($current_version) . '</p>';
|
||||||
|
|
||||||
|
if (!empty($latest_release) && isset($latest_release['version'])) {
|
||||||
|
if (version_compare($current_version, $latest_release['version'], '<')) {
|
||||||
|
echo '<p><strong>' . __('Latest Version:', 'minecraft-modern-theme') . '</strong> <span style="color: #d63638;">' . esc_html($latest_release['version']) . '</span></p>';
|
||||||
|
echo '<p><strong>' . __('Status:', 'minecraft-modern-theme') . '</strong> <span style="color: #d63638;">' . __('Update Available', 'minecraft-modern-theme') . '</span></p>';
|
||||||
|
echo '<p><a href="' . esc_url($latest_release['download_url']) . '" class="button button-primary" target="_blank">' . __('Download Update', 'minecraft-modern-theme') . '</a></p>';
|
||||||
|
} else {
|
||||||
|
echo '<p><strong>' . __('Latest Version:', 'minecraft-modern-theme') . '</strong> <span style="color: #46b450;">' . esc_html($latest_release['version']) . '</span></p>';
|
||||||
|
echo '<p><strong>' . __('Status:', 'minecraft-modern-theme') . '</strong> <span style="color: #46b450;">' . __('Up to Date', 'minecraft-modern-theme') . '</span></p>';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
echo '<p><strong>' . __('Status:', 'minecraft-modern-theme') . '</strong> ' . __('Unable to check for updates', 'minecraft-modern-theme') . '</p>';
|
||||||
|
}
|
||||||
|
|
||||||
|
echo '<p><a href="https://git.viper.ipv64.net/M_Viper/Minecraft-Modern-Theme/releases" target="_blank">' . __('View All Releases', 'minecraft-modern-theme') . '</a></p>';
|
||||||
|
}
|
||||||
@@ -1,65 +1,52 @@
|
|||||||
<!DOCTYPE html>
|
document.addEventListener('DOMContentLoaded', function() {
|
||||||
<html <?php language_attributes(); ?>>
|
// Hole den Slider-Container
|
||||||
<head>
|
const heroSlider = document.querySelector('.hero-slider');
|
||||||
<meta charset="<?php bloginfo( 'charset' ); ?>">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
|
||||||
<?php wp_head(); ?>
|
|
||||||
</head>
|
|
||||||
<body <?php body_class(); ?>>
|
|
||||||
<header id="masthead" class="site-header">
|
|
||||||
<div class="container">
|
|
||||||
<div class="header-main">
|
|
||||||
<div class="site-branding">
|
|
||||||
<?php
|
|
||||||
if ( function_exists( 'the_custom_logo' ) && has_custom_logo() ) {
|
|
||||||
the_custom_logo();
|
|
||||||
}
|
|
||||||
?>
|
|
||||||
<?php
|
|
||||||
|
|
||||||
if ( is_front_page() && is_home() ) :
|
// Stelle sicher, dass der Slider auf der Seite existiert
|
||||||
?>
|
if (!heroSlider) {
|
||||||
<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
|
return;
|
||||||
<?php else : ?>
|
|
||||||
<p class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></p>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
<nav id="site-navigation" class="main-navigation">
|
|
||||||
<?php wp_nav_menu( array( 'theme_location' => 'primary', 'container' => false ) ); ?>
|
|
||||||
</nav>
|
|
||||||
<div class="header-info">
|
|
||||||
<div class="social-links">
|
|
||||||
<?php
|
|
||||||
// Array mit den Social-Media-Plattformen und ihren Font Awesome Klassen
|
|
||||||
$social_icons = array(
|
|
||||||
'discord' => 'fab fa-discord',
|
|
||||||
'youtube' => 'fab fa-youtube',
|
|
||||||
'twitter' => 'fab fa-x-twitter', // Neues Icon für Twitter/X
|
|
||||||
'facebook' => 'fab fa-facebook-f',
|
|
||||||
'instagram' => 'fab fa-instagram',
|
|
||||||
'tiktok' => 'fab fa-tiktok',
|
|
||||||
'twitch' => 'fab fa-twitch',
|
|
||||||
'steam' => 'fab fa-steam',
|
|
||||||
'github' => 'fab fa-github',
|
|
||||||
'linkedin' => 'fab fa-linkedin-in',
|
|
||||||
'pinterest' => 'fab fa-pinterest-p',
|
|
||||||
'reddit' => 'fab fa-reddit-alien',
|
|
||||||
'teamspeak' => 'fab fa-teamspeak',
|
|
||||||
'spotify' => 'fab fa-spotify'
|
|
||||||
);
|
|
||||||
|
|
||||||
// Schleife, die alle verfügbaren Icons durchgeht
|
|
||||||
foreach ($social_icons as $key => $class) {
|
|
||||||
// Prüfen, ob für diese Plattform eine URL im Customizer hinterlegt wurde
|
|
||||||
if (get_theme_mod('social_' . $key)) {
|
|
||||||
// Wenn ja, Link und Icon ausgeben
|
|
||||||
echo '<a href="' . esc_url(get_theme_mod('social_' . $key)) . '" target="_blank"><i class="' . esc_attr($class) . '"></i></a>';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
?>
|
|
||||||
</div>
|
// Konfiguration für den Slider vorbereiten
|
||||||
</div>
|
const swiperConfig = {
|
||||||
</div>
|
// Der Effekt ist jetzt fest auf "Überblenden" eingestellt
|
||||||
</div>
|
effect: 'fade',
|
||||||
</header>
|
fadeEffect: {
|
||||||
|
crossFade: true
|
||||||
|
},
|
||||||
|
|
||||||
|
// Loop-Einstellung ist jetzt DYNAMISCH
|
||||||
|
loop: sliderSettings.loop === '1',
|
||||||
|
|
||||||
|
// Autoplay
|
||||||
|
autoplay: {
|
||||||
|
delay: 5000,
|
||||||
|
disableOnInteraction: false,
|
||||||
|
},
|
||||||
|
|
||||||
|
pauseOnMouseEnter: true,
|
||||||
|
|
||||||
|
// Prüfe, ob die Pfeile NICHT ausgeblendet werden sollen
|
||||||
|
navigation: sliderSettings.hideArrows !== '1' ? {
|
||||||
|
nextEl: '.swiper-button-next',
|
||||||
|
prevEl: '.swiper-button-prev',
|
||||||
|
} : false,
|
||||||
|
|
||||||
|
// Prüfe, ob die Paginierung NICHT ausgeblendet werden soll
|
||||||
|
pagination: sliderSettings.hidePagination !== '1' ? {
|
||||||
|
el: '.swiper-pagination',
|
||||||
|
clickable: true,
|
||||||
|
} : false,
|
||||||
|
|
||||||
|
on: {
|
||||||
|
init: function () {
|
||||||
|
setTimeout(() => {
|
||||||
|
heroSlider.classList.add('swiper-initialized');
|
||||||
|
}, 50);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Initialisiere den Slider mit der konfigurierten Optionen
|
||||||
|
new Swiper('.hero-slider', swiperConfig);
|
||||||
|
});
|
||||||
@@ -4,7 +4,7 @@ Theme URI: https://git.viper.ipv64.net/M_Viper/Minecraft-Modern-Theme
|
|||||||
Author: M_Viper
|
Author: M_Viper
|
||||||
Description: Ein modernes Gaming-Theme mit konfigurierbarem Header-Slider.
|
Description: Ein modernes Gaming-Theme mit konfigurierbarem Header-Slider.
|
||||||
Author URI: https://M-Viper.de
|
Author URI: https://M-Viper.de
|
||||||
Version: 1.2
|
Version: 1.3
|
||||||
License: GNU General Public License v2 or later
|
License: GNU General Public License v2 or later
|
||||||
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
||||||
Text Domain: minecraft-modern-theme
|
Text Domain: minecraft-modern-theme
|
||||||
|
|||||||
Reference in New Issue
Block a user