Joomla: Unterschied zwischen den Versionen

Aus Mediawiki Ferdinand Gruber
Zur Navigation springen Zur Suche springen
KKeine Bearbeitungszusammenfassung
KKeine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 9: Zeile 9:
[[Joomla Benutzerverwaltung]]
[[Joomla Benutzerverwaltung]]


== Benutzer ==
[[Phoca Joomla Extensions]]
=== Gruppen und Zugriffsebenen ===
https://blog.formativ.net/joomla-benutzergruppen-und-zugriffsebenen/
=== Benutzeranmeldung mit Modul ===
Ein Modul vom Typ '''Benutzer-Anmeldung''' auf der Seite platzieren - eventuell in der Navigationsleiste.
: Dies ist die einfachere Variante mit dem einzigen Nachteil, dass etwas mehr Platz benötigt wird. Der Vorteil ist, dass die An- und Abmeldeweiterleitung einfach zu realisieren sind, d.h. man kann auf die zuletzt angezeigte Seite weiterleiten (Standard).


=== Benutzeranmeldung mit einem Menüeintrag ===
[[Joomla Security und Troubles]]
Einen Menüeintrag vom Typ '''Benutzer-Anmeldeformular''' erzeugen.
: Nachteil: Die An- und Abmeldeweiterleitung vom Typ '''Standard''' leitet weiter zum Anmeldeformular, da die zuletzt angezeigte Seite eben das Anmeldeformular ist.
Das ist nicht sehr sinnvoll. Man kann statt der Standard-Option einen bestimmten Menüeintrag als Weiterleitungsziel nehmen, z.B. die Startseite der Joomla-Site.
 
=== Login Menüpunkt ausblenden ===
Möchte man nach Anmeldung eines Benutzer den Menüpunkt '''Login''' ausblenden, so muss man einige Änderungen in der Benutzerverwaltung durchführen.
* Eine neue Benutzergruppe anlegen
# Beispiel:
Name: NonRegistered
: Hinweis: Ab Joomla 3 wird angeblich eine Benutzergruppe '''Gast''' automatisch nach der Installation angelegt.
* Eine neue Zugriffsebene anlegen
# Beispiel:
Name: Gast
Nur die neue Benutzergruppe '''NonRegistered''' soll Zugriff haben (anklicken).
* Zugriffsebene Public ändern
In der Zugriffsebene '''Public''' muss nun die neue Gruppe '''NonRegistered''' zusätzlich aktiviert werden.
* Benutzer Optionen ändern
Auf das Optionen Symbol klicken (rechts oben) und als '''Gast Benutzergruppe''' die neue Gruppe '''NonRegistered''' eintragen.
 
=== Authentifizierung über LDAP ===
* Das Plugin '''Authentifikation - LDAP''' aktivieren
* Plugin konfigurieren
Host:        localhost
Port:        389
LDAP V3:    Ja
Autorisierungsmethode: Verbinden und Suchen
Basis-DN:    dc=network
Suchstring:  &(uid=[search]) (gidNumber=601)
Voller Name: gecos
E-Mail:      mail
Benutzer-ID: uid
Hinweis: Das LDAP Attribut '''mail''' muss bei jedem Benutzer vorhanden sein.
 
== Phoca Gallery ==
=== Konfiguration und Anwendung ===
* Phocagallery Plugin
Zur Phocagallery gibt es ein Plugin, mit dem man in einen Beitrag Fotos aus einer Galerie einbinden kann.
: http://www.phoca.cz/download/category/14-phoca-gallery-plugin
Folgende Zeile in den Artikel einfügen:
# Beispiel
{phocagallery view=category|categoryid=15}
Nach der Installation muss das Plugin '''aktiviert''' werden.
 
==== Optionen ====
* Thumbnails
Große Thumbnails = Detailansicht: 800 x 600
Mittlere Thumbnails: 175 x 175
Kleine Thumbnails: 100 x 100
 
Detail Fenstergröße: 820 x 680
=== Bildergalerie hinzufügen ===
==== Upload ====
Am Server ein neues Verzeichnis erstellen
images/phocagallery/neuerOrdner
Fotos mit Dateimanager, z.B. Dolphin oder mit einem FTP Client, z.B. Filezilla, in den neuen Ordner hochladen
: Sicherstellen, dass der Benutzer <tt>wwwrun</tt> (... wenn openSuse) Schreibrechte in diesem Ordner hat
 
=== Joomla Backend ===
Komponenten / Phocagallery / Bilder / Mehrfaches Hinzufügen
Auf der rechten Seite werden alle Gallery Ordner angezeigt. Den neuen Ordner auswählen per Checkbox und dann auf <tt>Speichern und Schließen</tt> klicken.
 
Nun sollten die Thumbnails automatisch generiert werden.
 
Falls ein Fehler auftritt, wird der Vorgang abgebrochen und die automatische Thumbnailerstellung deaktiviert. Im Phocagallery Kontrollzentrum kann man unter <tt>Optionen</tt> diese wieder einschalten.
 
== Phoca Mail ==
=== Abmelden vom Newsletter nicht möglich ===
In der Komponente JCE Editor muss man '''Relative URLs''' einschalten.
JCE Administration / Editor Profiles / Default / Editor Parameters
 
== Sicherheit ==
===Kontaktformular gegen SPAM Bots absichern===
Folgende Datei  bearbeiten:
/components/com_contact/views/contact/tmpl/default_form.php
* Ein '''verstecktes''' Formularfeld hinzufügen:
<input type="text" name="security" style="'''display: none;'''">
Die JavaScript Funktion '''validate_form''' ändern:
...
if (frm.security === "") {
    frm.submit();
}
Ein SPAM Bot wird automatisch alle Felder ausfüllen. Das Formular wird jedoch nur dann abgeschickt, wenn dieses versteckte Feld leer ist.
=== reCAPTCHA ===
==== Plugin aktivieren ====
Im Joomla Backend das Plugin <code>Captcha - reCAPTCHA</code> aktivieren.
==== Schlüssel beziehen ====
Man muss einen öffentlichen und einen geheimen Schlüssel eingeben.
: Diese zwei Schlüssel bekommt man, indem man auf folgender Seite jene Domain registriert, über welche die Joomla Seite erreichbar ist.
https://www.google.com/recaptcha/admin
 
Klick auf das '+' Symbol rechts oben.
 
==== reCAPTCHA Version ====
* reCAPTCHA Version 2
* Kästchen ''Ich bin kein Roboter''
* Die zwei Schlüssel kopieren und im Joomla-Plugin einfügen
==== Kontaktformular ====
Im Joomla Backend muss unter <tt>Benutzer / Optionen"</tt> '''reCAPTCHA''' aktiviert werden, wenn es für das Kontaktformular verwendet werden soll.
:: Falls reCAPTCHA im Kontaktformular nicht erscheint, dann unter <tt>Komponenten / Kontakte / Option</tt> die Formulareinstellungen  überprüfen.
 
== Troubles ==
=== Komponenteninstallation nicht möglich ===
Fehlermeldung:
Es wurde kein Installationsplugin aktiviert ...
Lösung:
Erweiterungen / Verwalten / Überprüfen
Die gewünschten Installtionsplugins auswählen und auf '''Installieren''' klicken und dann ...
Erweiterungen / Plugins
... die neu installierten Installer - Plugins aktivieren.
=== HTML wird entfernt nach Speichern einer Seite ===
Für die Benutzergruppe ist ein Textfilter gesetzt auf den Wert '''Kein HTML'''
Joomla | Globale Konfiguration | Textfilter
Den Textfilter ändern auf den Wert '''Keine Filterung'''
 
== Overrides ==
 
=== Offline Seite ===
Die Offline Seite kann man durch eigenen Code ersetzen bzw ergänzen.
: Folgende Datei in den Ordner <code> template/mein_template </code> kopieren und bearbeiten:
template/system/offline.php
oder gleich eine eigene Offline-Seite mit PHP erstellen.
: Joomla verwendet dann nicht diese Standardseite im system Verzeichnis, sondern den Override im aktuell verwendeten Template.
Das ist ein Beispiel meiner Offline Seite(n):
<pre>
<?php
defined('_JEXEC') or die; ?>
<head>
</head>
<body>
    <style>
        .offline-container {
            max-width:100%;
            margin-top:4px;
            padding: 10px;
            background: #DDD;
            border: solid thin #999;
        }
        @media only screen and (min-width: 721px) {
            .offline-container {
                position: absolute;
                left: 50%;
                width: 600px;
                margin-left: -300px;
            }
        }
    </style>
 
    <div class="offline-container"> <?php
        require_once("/srv/www/include/php/application.php");
        define ("DEVELOP",false);
        define ("PROJ_NAME","abendmusik.at");
        define ("APP_NAME","Abendmusik in der Magdalenabergkirche");
        echo application::render_offlinePage(array(
            "referer" => "joomla",
            "offline" => true,
            "days" => 1,
            "hours" => 2
        )); ?>
    </div>
</body>
</html>
</pre>
 
Die in obigem Code aufgerufene Funktion <code>application::renderOfflinePage</code>zeigt an, wie lang die Seite offline ist.
 
Hier der Code meiner Offline Funktion:
<pre>
static function renderOfflinePage($params=array()) {
    date_default_timezone_set('Europe/Vienna');
    foreach ( $params as $key => $value ) $$key = $value;
 
    $start = mktime(date('H'), 0, 0, date("m"), date("d") , date("Y"));
    $sec = ($days * 24 + $hours) * 60 * 60;
    $ende_timestamp = $start + $sec;
    $Uhrzeit = strftime ("%H:00",$ende_timestamp);
    if ( $days == 0 ) {
        $Datum = "heute";
    } else {
        $Datum = strftime ("%d. %B %Y",$ende_timestamp);
    }
    $return = "<h1>Wartung</h1>";
    $return .= "<h2>".$caption."</h2>";
    $return .=  "<p>Diese Seite ist voraussichtlich bis <strong>".$Datum." ".$Uhrzeit."</strong> nicht verfügbar.</p>";
    $return .=  "<p>Bitte um Verständnis.</p>";
    $return .=  "<a href='mail@example.com'>Mail</a>an Webmaster.";
    return $return;
} </pre>

Aktuelle Version vom 11. Dezember 2024, 18:46 Uhr