pragmaMx

pragmaMx - the fast CMS

Home » FAQ

 FAQ (Häufige Fragen und Antworten)


Bereich: Start -> Allgemein


Sollte hier eine Frage nicht beantwortet sein, dann klicken Sie hier um sie hinzuzufügen

da pragmaMx und fast alle hier angebotenen Module, der GPL-Lizenz unterliegen, ist es jedem gestattet, diese Dateien als Download anzubieten. http://www.gnu.de/documents/gpl.de.html

Fraglich ist natürlich der Sinn des Unterfangens.
Nicht dass dann irgendwelche veralteten Versionen noch in aller Ewigkeit irgendwo zum Download angeboten werden....


Seit pragmaMx 0.1.11 braucht man an den Original-Sprachdateien nichts mehr zu ändern.

Beispiel: Sie möchten den Text „Wählen Sie einen Fachbereich“ ändern.

Diese Sprachkonstante „_SERVICESELECT“ findet sich in der Sprachdatei /modules/Feedback/language/lang-german.php. Also legen Sie im Ordner /language/ einen Unterordner /custom/ an. Darin erstellen Sie eine PHP-Datei mit dem Namen lang-german.php und dem folgenden Inhalt:

<?php // meine Sprachaenderungen: define("__SERVICESELECT", "HIER DER NEUE TEXT::::"); ?>

Künftig wird anstatt dem Original, die angepasste Konstante aus der Benutzerdatei verwendet. Somit ist eine Änderung der Original Sprachdatei nicht mehr nötig. Diese kann beim Update bedenkenlos überschrieben werden.

 Hinweis: Der Unterordner /custom/ mit entsprechender Sprachdatei muss im entsprechenden Modulordner liegen.

Um den pragmaMx-Nutzern neben dem Menümanager eine alternative Menügestaltung auf Basis der bereits bestehenden Blockdateien zu ermöglichen, sollte im DokuWiki ein entsprechender Eintrag erfolgen:
 

  • Die Blockdateien block-Modules_one.php, block-Modules_two.php, block-Modules_three.php sind, abgesehen von ihrem Namen, identisch.
  • Um jezt weitere Menüblöcke zu erhalten, kann einfach eine dieser Dateien kopiert und mit einem neuen Namen (z.B. block-Modules_four.php,  block-Modules_five.php etc.) versehen werden. Diese tauchen dann ebenfalls in der Modulverwaltung auf und somit können ihnen die gewünschten Module zugewisen werden.
  • Der/die neue/n Blockdatei/en muß/müssen natürlich in der Blockadministration eingerichtet / aktiviert werden.

Gerade bei URL's ohne www kann es passieren, das sich das mod_rewrite von pragmaMx verrennt. Dabei wird dann aus einer externen Url wie z.Bsp. "http://media.server.tdl/inhalt/bild.jpg" auf einmal "http://www.meinserver.tdl/media.server.tdl/inhalt/bild.jpg".

Als Abhilfe kann da folgender "Trick" verwendet werden.
Um im Editor einen solchen Link zu verwenden setzt man entweder vor das 'http' ein Leerzeichen, oder wenn man den Dialog für Links benutzt, vor die URL ein Leerzeichen. Dann wird die Url nicht umgeschrieben. Im Quelltext des Editors sieht das dann z.Bsp. so aus
<a href=" http://blablubb.tdl" ..... >


Das Problem:
Die User sollen vom Admin per Hand angelegt werden und erhalten danach eine Email mit den Zugangsdaten. Diese Zugangsdaten sollten nach dem Login für den User editierbar bleiben (Passwort ändern, Avatar hochladen, usw.).

Wenn man alle User per Hand eingeben will, dann deaktiviert man das Modul „User_Registration“ über die Moduladministration. Das „Your_Account“ Modul muss für alle Besucher aktiviert und freigeschaltet sein, damit sich die User einloggen können.

Eine Alternative ist, das Modul „User_Registration“ für alle Besucher zu aktivieren, aber die „Freischaltung durch Administrator“ einzustellen. Dann können sich die User selbst registrieren, der Admin entscheidet letztendlich, ob die Eingabedaten, bzw. die neuen User akzeptiert werden. Das spart dem Admin einiges an Tipparbeit.


alte Module aus pragmaMx 1.12.3 sollten unter pragmaMx V2.x noch funktionieren, wenn

  1. die Funktionen inkl. der Datenbankfunktionen aus der pragma-API verwendet werden
  2. sie keine Nuke-Funktionen oder Nuke-Cookies nutzen
  3. sie keine PHP-Funktionen nutzen, die unter PHP5.4ff. als deprecated markiert sind, oder weggefallen sind.....

gleiches trifft für Blöcke zu.

Die alte Modulstrukturen sollten auch weiterhin funktionieren, allerdings sind die ganzen Hooks und neuen Funktionen nicht verwendbar. Also am besten eine Testistallation mit 2.2.4 machen, die alten Module und Blöcke reinkopieren und austesten. Dabei bitte immer den Debug-Modus einschalten.


Im Debug-Modus zeichnet pragmaMx alle asuch kleinsten Fehler auf. Auch diejenigen, welche nicht zu einem offensichtlichen Fehler bei der Ausgabe führen. Dem Admin können diese sachen auch angezeigt werden. Damit kann der Admin oder auch wir besser verstehen, warum vielleicht das ein oder andere nicht funktioniert.


In den Systemeinstellungen unter "Service- und Debug-Einstellungen" bei " Fehler und Warnungen " die Einstellungen

  • ins Logfile schreiben (kritische Fehler werden immer geloggt)
  • auf Bildschirm anzeigen; Achtung!! Evtl. Sicherheitsrisiko!
  • erweiterte Debug-Informationen anzeigen

auf einen Wert ungleich "nein" stellen. Es ist immer zu empfehlen den Wert "ins Logfile schreiben" auf alle Besucher zu stellen.

Somit können im Logfile immer die letzten Fehler angezeigt werden.


um mehrschprachige Menus zu erreichen, muss man die Menus einzeln für jede Sprache im Menumanager anlegen. Die Menus für die Verschiedenen Sprachen, erhalten den gleichen Namen, ergänzt um den Sprachencode.

z.Bsp:

TOPMENU - Standard-Ausgabe
TOPMENU_EN - menu für Englisch
TOPMENU_TR - Menu für Türkisch

bei der Umschaltung der Sprache, sieht das System nach, ob ein Menu mit dem Sprachzusatz existiert, wenn nicht, wird das Standard-Menu gezeigt.


1. Es muss eine aktive .htaccess im Rooteverzeichnis der pragmamMx-Installation vorhanden sein.

2. In der Datei .htaccess muss die Rewrite-Regel eingeschaltet sein mit 
"RewriteEngine on"

3. und es muss einen Eintrag geben "ErrorDocument 404 /link/zur/Datei.end"

In der .htaccess, welche mit pragmaMx seit V2.x mitgeliefert wird, ist die Rewrite-Engine bereits eingeschaltet. Die Unmleitung des Fehlers (3.) Muss vor den "Individuelle Rewrite-Regeln fuer Standardmodule" stehen. Wenn auf ein Modul der pragmaMx-Installation umgeleitet werden soll, dann kann man diese auch so machen: "ErrorDocument 404 /inde22x.php?name=Modulsname". Wenn man den fehlerhaften Aufruf mit verwenden, so hägt man an die Umleitung direkt noch "&origurl=$1". Somit erhält man dann über die $_GET-Variable "$origurl" den fehlerhaften Aufruf im Modul.

 

Wenn nicht die pragmaMx-eigene .htaccess verwendet wird, dann sollte in der eigenen .htacces der Bereich in etwa so aussehen:

# Rewrite Engine aktivieren
RewriteEngine on

# evtl. bei Bedarf Rewrite Basisordner definieren
# falls nicht funktioniert, dann die nächste Zeile wieder einkommentieren, vorher allerdings den Pfad anpassen!!!
# RewriteBase /www


# individuelle Rewrite-Regeln:
RewriteRule ^home\.html$ index.php [L]

ErrorDocument 404 /index.php?name=Modul&origurl=$1


YouTube-Videos lassen sich direkt in einen Artikel einbinden, sodass Besucher das Video auf deiner Webseite ansehen können, ohne zu YouTube wechseln zu müssen.

Am einfachsten funktioniert das über den offiziellen YouTube-Embed-Code mit einem <iframe> und der jeweiligen Video-ID.

Hinweis zu iframes

Beim Einsatz von <iframe> solltest du beachten, dass darin externe Inhalte geladen werden, auf die deine Webseite selbst nur eingeschränkten Einfluss hat.

Erlaube iframes deshalb nur dort, wo sie tatsächlich benötigt werden, und binde ausschließlich Inhalte aus vertrauenswürdigen Quellen ein.

Je nach Konfiguration deiner pragmaMx-Installation musst du außerdem unter

Einstellungen → HTML-Optionen

die Verwendung von iframes erlauben.

Video in einen Artikel einfügen

Öffne den gewünschten Artikel im Editor und schalte den CKEditor über die Schaltfläche „Quellcode“ auf die HTML-Ansicht um.

Füge anschließend den iframe-Code an der Stelle ein, an der das Video erscheinen soll.

Nach dem Speichern sollte das eingebettete Video bereits in der Vorschau beziehungsweise im Artikel sichtbar sein.

Die Video-ID

Eine normale YouTube-Adresse sieht zum Beispiel so aus:

[i]https://www.youtube.com/watch?v=VIDEOID[/i]

Der Teil hinter

[i]watch?v=[/i]

ist die sogenannte Video-ID.

In diesem Beispiel lautet sie:

[i]VIDEOID[/i]

Diese ID wird anschließend in den Embed-Code eingesetzt.

Einfaches Beispiel

[code]<iframe width="560" height="315" src="https://www.youtube.com/embed/VIDEOID" title="YouTube Video" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen>

</iframe>[/code]

Aus

[i]https://www.youtube.com/watch?v=VIDEOID[/i]

wird damit beispielsweise:

[code]<iframe width="560" height="315" src="https://www.youtube.com/embed/VIDEOID" title="YouTube Video" frameborder="0" allowfullscreen>

</iframe>[/code]

Responsive Einbindung

Für moderne Webseiten ist eine responsive Einbindung empfehlenswert. Dadurch passt sich die Größe des Videos automatisch an Desktop, Tablet und Smartphone an.

HTML:

[code]<div class="video-container">
<iframe src="https://www.youtube.com/embed/VIDEOID" title="YouTube Video" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen>
</iframe>

</div>[/code]

Dazu wird folgendes CSS benötigt:

[code].video-container {
position: relative;
width: 100%;
aspect-ratio: 16 / 9;
}

.video-container iframe {
width: 100%;
height: 100%;
border: 0;
}[/code]

Damit nutzt das Video automatisch die verfügbare Breite, behält aber weiterhin das typische Seitenverhältnis von 16:9 bei.

Datenschutz: youtube-nocookie.com verwenden

Gerade für Webseiten in Deutschland und der EU sollte auch der Datenschutz berücksichtigt werden.

YouTube bietet dafür den sogenannten erweiterten Datenschutzmodus an. Statt

[i]youtube.com/embed/[/i]

kannst du

[i]youtube-nocookie.com/embed/[/i]

verwenden.

Beispiel:

[code]<iframe src="https://www.youtube-nocookie.com/embed/VIDEOID" title="YouTube Video" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen>

</iframe>[/code]

Auch beim erweiterten Datenschutzmodus werden jedoch externe Inhalte von YouTube geladen. Abhängig von deiner eingesetzten Datenschutz- beziehungsweise Consent-Lösung kann es deshalb erforderlich sein, YouTube-Videos erst nach Zustimmung des Besuchers zu laden.

Kurz zusammengefasst

  1. Video-ID aus der YouTube-Adresse ermitteln.

  2. Artikel im CKEditor öffnen.

  3. Auf „Quellcode“ umschalten.

  4. iframe-Code an der gewünschten Position einfügen.

  5. VIDEOID durch die tatsächliche Video-ID ersetzen.

  6. Artikel speichern und die Darstellung kontrollieren.

Für eine responsive Darstellung empfiehlt sich zusätzlich die Variante mit video-container.

Ich habe dabei auch die Sicherheitsformulierung etwas präzisiert: Ein <iframe> ist nicht grundsätzlich eine „Spam-Lücke“; problematisch wird es vor allem, wenn beliebige oder nicht vertrauenswürdige iframe-Quellen zugelassen werden.


Counter

Wir hatten
139.866.854
Seitenzugriffe seit 02.07.2002