diw/pannellum 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

diw/pannellum

最新稳定版本:1.0.3

Composer 安装命令:

composer require diw/pannellum

包简介

TYPO3 extension providing a plugin to render 360° panoramas via Pannellum.

README 文档

README

Pannellum TYPO3 Extension (diw/pannellum)

Diese Extension integriert Pannellum (JS 360°/VR Panorama Viewer) in TYPO3 v12/v13. Die Inhalte werden über ein Plugin (Inhaltselement), eigenständige „Scene“-Datensätze und deren Hotspots konfiguriert. Mehrere Panoramen pro Seite werden unterstützt.

Installation

  1. Über Composer installieren (falls nicht bereits vorhanden):
composer require diw/pannellum
  1. Extension im TYPO3-Backend aktivieren (Extension Manager).
  2. Datenbank-Upgrade ausführen (Install Tool → Datenbank vergleichen)
  3. Caches leeren.

Hinweise

  • Pannellum-JS/CSS werden automatisch per CDN über Fluid f:asset eingebunden und dedupliziert.
  • Falls Sie eine feste Pannellum-Version oder SRI-Hashes wünschen, kann dies in der Template-Integration angepasst werden.

Handbuch für Redakteur:innen

Die Konfiguration gliedert sich in drei Bausteine, die zusammenspielen:

  1. Scene-Datensätze anlegen (Inhalte vorbereiten)
  • Legen Sie einen SysOrdner für „Scenes“ an.
  • Erstellen Sie dort beliebig viele Datensätze vom Typ „Scene“.
  • Pro Scene wählen Sie das Panorama-Bild (FAL-Datei), vergeben einen eindeutigen identifier und einen title.
  • Im Reiter „Hotspots“ fügen Sie nach Bedarf Hotspots hinzu (z. B. Szenenwechsel oder Info-Links).
  1. Plugin platzieren und Szenen auswählen
  • Fügen Sie das Inhaltselement „Plugins → 360Grad Panorama“ (list_type: pannellum_panorama) ein.
  • Reiter „Szenen“: Wählen Sie die gewünschten Scene-Datensätze in der gewünschten Reihenfolge. Die erste ausgewählte Scene wird automatisch als firstScene verwendet. Wenn in einer Scene Hotspot-Links zu einer anderen Scene enthalten sind die hier nicht gewählt wurde dann wird der betreffende Hotsot nicht angezeigt.
  • Reiter „Defaults“ und „Options“: Pflegen Sie globale Anzeige- und Steuerungsoptionen (siehe unten).
  • Am Inhaltselement steht zusätzlich ein FAL-Feld „Vorschaubild“ zur Verfügung
  1. Frontend-Ausgabe
  • Das Element rendert eine eindeutige Container-ID pro Inhaltselement (mehrere Panoramen pro Seite sind möglich).
  • Die Initialisierung erfolgt automatisch, sobald die Pannellum-Bibliothek geladen ist.

Optionen im Detail

Plugin – Reiter „Defaults“

  • sceneFadeDuration (number)
    • Überblenddauer zwischen Szenen in Millisekunden.
  • autoLoad (boolean)
    • Lädt das Panorama automatisch beim Laden der Seite.
  • autoRotate (number)
    • Startet automatische Rotation mit angegebener Geschwindigkeit (negativ = gegen Uhrzeigersinn).
  • author (string)
    • Autor:in, die in der Oberfläche angezeigt wird.
  • preview (FAL am Inhaltselement)
    • Vorschau-/Ladebild. Wird nur gesetzt, wenn eine Datei referenziert ist.

Hinweis: firstScene ist kein Eingabefeld – es wird automatisch auf die zuerst im Plugin ausgewählte Scene gesetzt.

Plugin – Reiter „Options“

  • authorURL (string)
    • Wenn gesetzt, wird der author-Text auf diese URL verlinkt. Wirkt nur, wenn author gesetzt ist.
  • autoRotateInactivityDelay (number)
    • Verzögerung (ms), nach der nach Nutzeraktivität die Auto-Rotation startet; nur wirksam mit autoRotate.
  • autoRotateStopDelay (number)
    • Verzögerung (ms), nach der die Auto-Rotation nach dem Laden stoppt; nur wirksam mit autoRotate.
  • orientationOnByDefault (boolean)
    • Aktiviert die Geräteorientierung beim Laden (falls unterstützt). Standard: false.
  • showZoomCtrl (boolean)
    • Blendet Zoom-Steuerung ein/aus. Standard: true.
  • keyboardZoom (boolean)
    • Aktiviert/Deaktiviert Zoomen per Tastatur. Standard: true.
  • mouseZoom (boolean|string)
    • true/false oder fullscreenonly (nur im Vollbild zoomen). Standard: true.
  • draggable (boolean)
    • Aktiviert/Deaktiviert Ziehen per Maus/Touch. Standard: true.
  • disableKeyboardCtrl (boolean)
    • Deaktiviert alle Tastatursteuerungen. Standard: false.
  • showFullscreenCtrl (boolean)
    • Steuert Anzeige des Vollbild-Buttons (nur bei Browser-Support). Standard: true.
  • showControls (boolean)
    • Blendet alle Controls ein/aus. Standard: true.

Scene-Datensatz – Allgemeines

  • identifier (string)
    • Eindeutiger Schlüssel der Scene; wird in Hotspots referenziert und im JSON als Szenen-ID genutzt.
  • title (string)
    • Titel der Scene (für Redaktionszwecke und optional UI).
  • type (string)
    • Pannellum-Szenentyp; üblich ist equirectangular.
  • panorama (FAL-Datei)
    • Das 360°-Panorama-Bild (Dateiauswahl über TYPO3 FAL).
  • hotspot_debug (boolean)
    • Aktiviert die Hotspot-Debug-Anzeige (nur für Entwicklung/Debugging sinnvoll).

Scene-Datensatz – Start-/Grenzwerte der Ansicht

  • yaw (number)
    • Start-Yaw (in Grad). Standard: 0.
  • pitch (number)
    • Start-Pitch (in Grad). Standard: 0.
  • hfov (number)
    • Start-HFOV (Sichtfeld horizontal, in Grad). Standard: 100.
  • minYaw / maxYaw (number)
    • Minimaler/Maximaler Yaw der Viewer-Kante (in Grad). Standard: -180 / 180 (kein Limit).
  • minPitch / maxPitch (number)
    • Minimaler/Maximaler Pitch der Viewer-Kante (in Grad). Standard: unbegrenzt (Center kann -90/90 erreichen).
  • minHfov / maxHfov (number)
    • Minimaler/Maximaler HFOV (in Grad). Standard: 50 / 120.

Leere Felder werden nicht ins JSON geschrieben; Pannellum verwendet dann seine Standardwerte.

Hotspots (in der Scene-FlexForm)

  • pitch (number)
    • Position des Hotspots (Pitch) in Grad.
  • yaw (number)
    • Position des Hotspots (Yaw) in Grad.
  • type (select: scene | info)
    • „scene“ wechselt zu einer Szene; „info“ verlinkt zu einer URL.
  • text (string)
    • Bezeichner/Tooltip des Hotspots.
  • sceneId (select)
    • Ziel-Szene (Identifier) für Scene-Hotspots. Auswahl aus vorhandenen Scenes (alphabetisch sortiert).
  • url (string)
    • Ziel-URL für Info-Hotspots. Für Scene-Hotspots nicht anwendbar. Ausgabe im JSON-Schlüssel URL (Großschreibung gemäß Pannellum).
  • targetPitch (number | "same")
    • Ziel-Pitch der Scene in Grad. "same" übernimmt aktuellen Pitch der Ausgangsszene.
  • targetYaw (number | "same" | "sameAzimuth")
    • Ziel-Yaw der Scene in Grad. "same" übernimmt aktuellen Yaw; "sameAzimuth" berücksichtigt northOffset zur Beibehaltung der Nordausrichtung.
  • targetHfov (number | "same")
    • Ziel-HFOV in Grad. "same" übernimmt aktuellen HFOV der Ausgangsszene.

Support / Weiterentwicklung

Fehler gefunden oder Wünsche? Bitte ein Issue im Repository anlegen oder direkt Kontakt aufnehmen.

统计信息

  • 总下载量: 16
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固