Nach teils Umstellung eines Joomlas auf SSL (https) entdeckte ich ein altes Modul, das für einen internen Link hartkodiert http einsetzte. Kein Problem, da man ja einfach auf https umschreiben kann. Funktioniert mit beiden Protokollen ohne Browserwarnung. Da das Modul auch in Joomlas ohne SSL läuft, dann doch besser, das Scheme dynamisch zu ermitteln. Geht mit einem kleinen Schnipsel.

// $protokoll ergibt String http oder String https
$protokoll = JUri::getInstance()->getScheme();

Code-Beispiel

echo JUri::getInstance()->getScheme() . '://ghsvs.de';

Ergibt auf Seiten, die per http aufgerufen werden im Modul-Code

http://ghsvs.de

und auf Seiten, die per https aufgerufen werden im Modul-Code

https://ghsvs.de

Und in Joomla 4 (auch in Joomla ab Version 3.9 verwendbar)?

Nach wie vor kann man obigen Code verwenden, also mit JUri. Wer schon weit in die Zukunft denkt, wo solcherlei Namespace-Aliase nicht mehr funktionieren werden, vermutlich Joomla 5, hat zwei Möglichkeiten.

use-Zeile am Anfang der Datei

defined('_JEXEC') or die;

use Joomla\CMS\Uri\Uri;

Danach verwende Uri:: statt JUri:: in obigen Code-Schnipseln.

Direkte "Ansprache" des Namespaces

Verwende \Joomla\CMS\Uri\Uri:: statt JUri:: in obigen Code-Schnipseln.