ps-update-manager

Network-Modi für PSource Plugins

Übersicht

PSource Plugins können verschiedene Network-Modi unterstützen, die steuern, wie sie auf ClassicPress Single-Site und Multisite-Installationen aktiviert werden können.

Unterstützte Modi

1. ClassicPress Network Only (Immer nur Netzwerkweit)

Verwendung: ClassicPress Standard für Plugins die NUR auf Multisite funktionieren und dort nur netzwerkweit aktivierbar sein sollen.

Plugin-Header:

/*
Plugin Name: Mein Plugin
Network: true
*/

Verhalten:

Beispiele:

⚠️ Nicht verwenden für: Plugins die auch auf Single-Sites funktionieren sollen!

2. Multisite Network Required (Multisite-Aware)

Verwendung: Plugins die auf Single-Sites normal laufen, aber auf Multisite nur netzwerkweit aktiviert werden sollen.

Plugin-Header:

/*
Plugin Name: Mein Plugin
PS Network: required
*/

Verhalten:

Beispiele:

✅ Empfohlen für: Die meisten PSource Plugins mit Multisite-Support

3. Network Flexible (Beide Modi)

Verwendung: Plugins die sowohl netzwerkweit als auch site-by-site aktiviert werden können.

Plugin-Header:

/*
Plugin Name: Mein Plugin
PS Network: flexible
*/

Verhalten:

Beispiele:

4. Site-Only (Standard)

Verwendung: Normale Plugins die nur auf Unterseiten-Ebene aktivierbar sind (nicht netzwerkweit).

Plugin-Header:

/*
Plugin Name: Mein Plugin
// Kein Network-Header
*/

Verhalten:

Beispiele:

Empfehlungen

Wann Network: true verwenden?

⚠️ Vorsicht: Dieser Modus macht das Plugin auf Single-Sites unnutzbar!

Nutze Network: true nur wenn:

Beispiele:

// Domain Mapping - nur Multisite-Konzept
Network: true

// Netzwerk-Site-Kloner - nur auf Multisite sinnvoll
Network: true

Wann PS Network: required verwenden? ⭐ EMPFOHLEN

Am häufigsten verwendet für PSource Plugins

Nutze PS Network: required wenn:

Beispiele:

// Update Manager - Single-Site OK, Multisite zentral
PS Network: required

// Standard Theme - Single-Site OK, Multisite netzwerkweit
PS Network: required

// Zentrale Settings - Single-Site OK, Multisite nur netzwerkweit
PS Network: required

Wann PS Network: flexible verwenden?

Nutze PS Network: flexible wenn:

Beispiele:

// Chat Plugin - optional für einzelne oder alle Sites
PS Network: flexible

// Analytics Plugin - je nach Bedarf
PS Network: flexible

// Social Media Integration - Site-spezifisch oder netzwerkweit
PS Network: flexible

Wann keinen Header verwenden?

Nutze keinen Network-Header wenn:

UI-Verhalten

Im Netzwerk-Admin (Multisite)

ClassicPress Network (Network: true):

[Netzwerkweit aktivieren]
⚠️ Dieses Plugin kann nur netzwerkweit aktiviert werden.

Multisite Required (PS Network: required):

[Netzwerkweit aktivieren]
ℹ️ Auf Multisite nur netzwerkweit aktivierbar. Auf Single-Sites normal nutzbar.

Network Flexible (PS Network: flexible):

[Netzwerkweit aktivieren]
ℹ️ Kann auch site-by-site im Site-Admin aktiviert werden.

Site-Only (kein Header):

[Aktivieren]
ℹ️ Nur auf Unterseiten-Ebene aktivierbar (nicht netzwerkweit).

Im Site-Admin (Multisite)

ClassicPress Network oder Multisite Required:

[🔒 Nur Netzwerk-Admin] (deaktiviert)
⚠️ Dieses Plugin kann nur im Netzwerk-Admin aktiviert werden.

Network Flexible oder Site-Only:

[Aktivieren]
ℹ️ Aktiviert das Plugin nur für diese Site.

Site-Only im Netzwerk-Admin:

[Button nicht verfügbar]
ℹ️ Nur auf Unterseiten-Ebene aktivierbar.

Auf Single-Sites

ClassicPress Network (Network: true):

❌ Plugin kann nicht aktiviert werden

Alle anderen Modi:

[Aktivieren]
✅ Normal aktivierbar

Migration bestehender Plugins

Von Network: true zu PS Network: required ⭐ EMPFOHLEN

Wenn dein Plugin auch auf Single-Sites funktionieren soll:

// Vorher - blockiert Single-Sites
/*
Plugin Name: Mein Plugin
Network: true
*/

// Nachher - Single-Sites OK, Multisite nur netzwerkweit
/*
Plugin Name: Mein Plugin
PS Network: required
*/

Von Standard zu Multisite Required

// Vorher
/*
Plugin Name: Mein Plugin
*/

// Nachher - Multisite-aware
/*
Plugin Name: Mein Plugin
PS Network: required
*/

Von Multisite Required zu Flexible

// Vorher
/*
Plugin Name: Mein Plugin
PS Network: required
*/

// Nachher - beide Modi erlaubt
/*
Plugin Name: Mein Plugin
PS Network: flexible
*/

Scanner-Integration

Der PS Update Manager Scanner erkennt automatisch:

  1. PSource Spezifisch: PS Network: required|flexible Header (hat Vorrang)
  2. ClassicPress Standard: Network: true Header
  3. Fallback: Kein Header = Site-Only

Die erkannten Werte werden in der Registry gespeichert:

array(
    'slug' => 'ps-update-manager',
    'network_only' => true,              // true auf Multisite wenn multisite-required
    'network_mode' => 'multisite-required', // Modi: 'wordpress-network', 'multisite-required', 'flexible', 'none'
    // ...
)

Best Practices

✅ DO

❌ DON’T

Technische Details

Header-Priorität

  1. PS Network Header (PSource-spezifisch)
  2. Network Header (ClassicPress Standard)
  3. Kein Header = Site-Only

get_file_data() Implementation

$file_data = get_file_data( $plugin_file, array(
    'Network' => 'Network',
    'PSNetwork' => 'PS Network',
) );

Erkannte Werte

Header-Wert Single-Site Multisite Netzwerk Multisite Site network_mode
Network: true ❌ Blockiert Nur netzwerkweit ❌ Blockiert wordpress-network
PS Network: required ✅ Normal Nur netzwerkweit ❌ Blockiert multisite-required
PS Network: flexible ✅ Normal Beide Modi Beide Modi flexible
Kein Header ✅ Normal ❌ Nicht verfügbar Nur Site-Ebene none

Siehe auch