Joomla 1.5

Fehlerbehebung: Starseite kann nur noch über index.php aufgerufen werden

Veröffentlicht in Joomla 1.5

Bei einem Webdesign-Kunden mit Joomla 1.5 Website trat mit einem mal der Fehler auf, dass die Startseite seiner Homepage nicht mehr angezeigt wurde. Gab man nur den Domainnamen in der URL an (www.meinedomain.de), wurde nur eine leere Seite angezeigt. Gab man dagegen in der Adresszeile des Browsers die Datei index.php (www.meinedomain.de/index.php) ein, wurde die Website normal angezeigt. Was er genau gemacht hatte, wusste der Kunde leider nicht mehr.

Im Webverzeichnis und in den Einstellungen war nichts ungewöhnliches zu entdecken; htaccess-Datei und configuration.php sahen eigentlich auch unverdächtig aus.

Fehlerbehebung: Starseite kann nur noch über index.php aufgerufen werdenAbhilfe schuf trotzdem, die configuration.php zu aktualisieren. Dazu habe ich im Backend unter Konfiguration eine unbedeutende Änderung vorgenommen und gespeichert, wodurch die configuration.php neu geschrieben und eingebunden wurde. Im Editor geöffnet sah sie zwar hinterher (bis auf die unbedeutende Änderung in der Offline-Message) genauso aus wie vorher, aber das Web funktionierte nun wieder wie gewohnt.

Joomla-Tipp: Email-Benachrichtigung mit BreezingForms

Veröffentlicht in Joomla 1.5

Email-Benachrichtigung für BreezingForms Formulare formatieren

Bei Verwendung von Formularen, die mit der Joomla!-Komponente BreezingForms erstellt wurden (z. B. ein Kontaktformular), ist es möglich, nach dem Abschicken des Formulars durch den Benutzer automatisch eine Email-Benachrichtigung zu versenden. Dabei ist es sowohl möglich eine Nachricht an den Benutzer (Benutzer-Mail) zu schicken, der das Formular abgeschickt hat, als auch eine Nachricht an eine oder mehrere, beliebig zu definierende Email-Adressen (ich nenne das hier mal Admin-Mail).


Template-Verzeichnis

Aussehen und Inhalt dieser Emails können über sogenannte Email-Templates frei definiert werden.
Die Standard Email-Templates von BreezingForms findet man im Admin-Verzeichnis unter folgendem Pfad:

JoomlaRoot/administrator/components/com_facileforms/mailtpl/

bzw. seit BreezingForms-Version 1.7.1 unter dem folgenden Pfad:

JoomlaRoot/administrator/components/com_breezingforms/mailtpl/


Aussehen bestimmen

txt-Template (Standard)

Standardmäßig wirken die folgenden Templates, die nach der Installation auch bereits im o. g. Verzeichnis existieren. Diese geben die Inhalte des ausgefüllten Formulares einfach als Textzeichen ohne Formatierung aus.

  • Admin-Mail: mailtpl.txt.php
  • Benutzer-Mail: mailbacktpl.txt.php

html-Template

Möchte man die Mails etwas anspruchsvoller gestalten, so muss man dafür entsprechende html-formatierte Template-Dateien ebenfalls im Template-Verzeichnis zur Verfügung stellen. Diese Dateien haben dann statt der Endung txt.php die Endung html.php.

  • Admin-Mail: mailtpl.html.php
  • Benutzer-Mail: mailbacktpl.html.php


Um die html-Templates zu verwenden, reicht es aus, dass sich die entsprechenden Dateien im Template-Verzeichnis befinden. Eine Umstellung im Joomla-Backend ist nicht nötig. Ist sowohl eine txt-Datei als auch eine html-Datei vorhanden, so wird die html-Datei bevorzugt verwendet.

Um eine html-Datei zu erstellen, kann man sich die bereits vorhandene txt-Datei mailtpl.txt.php einfach kopieren und umbenennen in mailtpl.html.php. So hat man den php-Code für die Ausgabe der Inhalte bereits bestehen. Anschließend fügt man einfach seine individuellen HTML-Tags zur Formatierung ein.


Individuelle Templates für jedes Formular

Bietet man auf seiner Website mehrere Formulare an, so möchte man vielleicht für jedes Formular ein individuelles Mail verwenden. Um dies zu erreichen, benennt man die Template-Datei einfach nach dem Namen des Formulars. Beispiel:

  • Formularname = kontaktformular
    (Achtung: Hier muss der Name des Formulars und nicht der Titel verwendet werden!)


Der Dateiname für die Template-Datei im html-Format muss dann lauten:

  • Admin-Mail: kontaktformular.html.php
  • Benutzer-Mail: kontaktformular_mailback.html.php
    (Achtung: nach dem Unterstrich muss es mailback und nicht wie in der Standarddatei mailbacktpl heissen!)


Der Dateiname für die Template-Datei im txt-Format muss dann lauten:

  • Admin-Mail: kontaktformular.txt.php
  • Benutzer-Mail: kontaktformular_mailback.txt.php
    (Achtung: nach dem Unterstrich muss es mailback und nicht wie in der Standarddatei mailbacktpl heissen!)


Inhalt der Mails

Der Inhalt der Mail kann für die html-Variante frei mit HTML und php-Scripten gestaltet und formatiert werden. In den txt-Standard-Dateien (z. B. mailtpl.txt.php)  findet man die benötigten BreezingForms-Variablen, um die Benutzerdaten und alle Formularfelder auszugeben.

Und so sieht das Standard txt-Template (mailtpl.txt.php) aus:

<?php
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
?>

<?php if ($RECORD_ID != ''): ?>
<?php echo $PROCESS_RECORDSAVEDID?> <?php echo $RECORD_ID ?><?php echo $NL ?>
<?php endif; ?>

<?php echo $PROCESS_FORMID?>: <?php echo $FORM ?><?php echo $NL ?>
<?php echo $PROCESS_FORMTITLE ?>: <?php echo $TITLE ?><?php echo $NL ?>
<?php echo $PROCESS_FORMNAME ?>: <?php echo $NAME ?><?php echo $NL ?>
<?php echo $PROCESS_SUBMITTEDAT ?>: <?php echo $SUBMITTED ?><?php echo $NL ?>
<?php echo $PROCESS_SUBMITTERIP ?>: <?php echo $IP ?><?php echo $NL ?>
<?php echo $PROCESS_SUBMITTERID ?>: <?php echo $SUBMITTERID ?><?php echo $NL ?>
<?php echo $PROCESS_SUBMITTERUSERNAME ?>: <?php echo $SUBMITTERUSERNAME ?><?php echo $NL ?>
<?php echo $PROCESS_SUBMITTERFULLNAME ?>: <?php echo $SUBMITTERFULLNAME ?><?php echo $NL ?>
<?php echo $PROCESS_PROVIDER ?>: <?php echo $PROVIDER ?><?php echo $NL ?>
<?php echo $PROCESS_BROWSER ?>: <?php echo $BROWSER ?><?php echo $NL ?>
<?php echo $PROCESS_OPSYS ?>: <?php echo $OPSYS ?><?php echo $NL ?>

<?php foreach ($MAILDATA as $DATA): ?>
<?php echo $DATA[_FF_DATA_TITLE]?>: <?php echo $DATA[_FF_DATA_VALUE]?><?php echo $NL ?>
<?php endforeach; ?>

 

Möchte man nicht alle Formularfelder in einer Schleife ausgeben, sondern nur ausgewählte, so kann man diese auch direkt über die folgende Syntax ansprechen:

<?php echo $value["Fieldname"]?>



Voraussetzung hierfür ist allerdings, dass die Variablen vorher über den folgenden Code eingerichtet werden (Am Beginn der Template-Datei): 

<?php
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
$field = array();
foreach ($MAILDATA as $DATA) {
$title[$DATA[_FF_DATA_NAME]] = $DATA[_FF_DATA_TITLE];
$value[$DATA[_FF_DATA_NAME]] = $DATA[_FF_DATA_VALUE];
}?>
 
Beispiel für ein html-Template

Ein html-Template könnte zum Beispiel so aussehen (kontaktformular.html.php):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Anfrage über Kontaktformular</title>
<?php
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
$field = array();
foreach ($MAILDATA as $DATA) {
$title[$DATA[_FF_DATA_NAME]] = $DATA[_FF_DATA_TITLE];
$value[$DATA[_FF_DATA_NAME]] = $DATA[_FF_DATA_VALUE];
}
?>

<style type="text/css" media="screen">
    body * {
        text-align:left;
    }
    body {
        margin: 0;
        padding: 0;
        font-family: Arial, sans-serif;
        font-size: 11px;
        font-weight: normal;
        margin-top:0px;
    }
     
    h1 {
        font-size: 15px;
        font-weight: bold;
        color: #333;
        margin-top:0px;
    }
     
    h2 {
        font-size: 12px;
        font-weight: bold;
        color: #333;
        margin-top:20px;
    }
   
    td {
        font-size: 11px;
        font-weight: normal;       
    }
   
    th {
        font-size: 11px;
        font-weight: bold;   
        color: #333;   
    }
</style>
</head>

<body>
<table width="100%" border="0">
  <tr>
    <th colspan="2" scope="col"><h1>Anfrage über Kontaktformular<br/>
    </h1>
        <?php if ($RECORD_ID != ''): ?>
            <?php echo $PROCESS_RECORDSAVEDID?> <?php echo $RECORD_ID ?><?php echo $NL ?>
        <?php endif; ?></th>
  </tr>
  <tr>
    <td colspan="2"><h2>Formularinhalt</h2></td>
  </tr>
  <?php foreach ($MAILDATA as $DATA): ?>
   
  <tr>
    <th><?php echo $DATA[_FF_DATA_TITLE]?></th>
    <td><?php echo $DATA[_FF_DATA_VALUE]?><?php echo $NL ?></td>
  </tr>
<?php endforeach; ?>
  <tr>
    <th>&nbsp;</th>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td colspan="2"><h2>Userdaten</h2></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_FORMID?>: </th>
    <td><?php echo $FORM ?><?php echo $NL ?></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_FORMTITLE ?>: </th>
    <td><?php echo $TITLE ?><?php echo $NL ?></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_FORMNAME ?>: </th>
    <td><?php echo $NAME ?><?php echo $NL ?></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_SUBMITTEDAT ?>: </th>
    <td><?php echo $SUBMITTED ?><?php echo $NL ?></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_SUBMITTERIP ?>: </th>
    <td><?php echo $IP ?><?php echo $NL ?></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_SUBMITTERID ?>: </th>
    <td><?php echo $SUBMITTERID ?><?php echo $NL ?></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_SUBMITTERUSERNAME ?>: </th>
    <td><?php echo $SUBMITTERUSERNAME ?><?php echo $NL ?></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_SUBMITTERFULLNAME ?>: </th>
    <td><?php echo $SUBMITTERFULLNAME ?><?php echo $NL ?></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_PROVIDER ?>: </th>
    <td><?php echo $PROVIDER ?><?php echo $NL ?></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_BROWSER ?>: </th>
    <td><?php echo $BROWSER ?><?php echo $NL ?></td>
  </tr>
  <tr>
    <th><?php echo $PROCESS_OPSYS ?>: </th>
    <td><?php echo $OPSYS ?><?php echo $NL ?></td>
  </tr>
</table>
</body>
</html>

 

Weiterführende Informationen

Zu diesem Thema gibt es bei Crosstec Solutions, dem Ersteller von BreezingForms, einen sehr, sehr langen, englischen Forums-Beitrag (derzeit 22 Seiten lang):
http://crosstec.de/forums/15-usage/1576-custom-email-notifications-howto.html
Auf Seite 20 im zweiten Beitrag kann man sich als angemeldeter Benutzer ein Beispiel-Template herunterladen, das dann beliebig verändert werden darf.

Außerdem enthält die Knowledge Base von Crosstec Solutions weitere wertvolle Informationen zum Thema: http://crosstec.de/support/index.php?pid=knowledgebase&cmd=viewcatclient&id=52


 

 

Sie benötigen professionelle Ünterstützung bei Joomla? Schreiben Sie mir einfach und ich berate Sie gerne!

Joomla-Tipp: BreezingForms Mailback mit PDF-Anhang

Veröffentlicht in Joomla 1.5

PDF-Datei für den Versand mit dem BreezingForms Mailback erstellen

Die Joomla-Formular-Komponente BreezingForms bietet dem Webdesigner ja die Möglichkeit, nach dem Abschicken des Formulars durch den Benutzer automatisch eine Email-Benachrichtigung zu versenden (siehe Artikel „Joomla-Tipp: Email-Benachrichtigung mit BreezingForms“). Seit der Version 1.7.1 gibt es außerdem die Möglichkeit, diesem Email auf komfortable Art eine PDF-Datei anzuhängen. 

Dieser PDF-Anhang kann beliebige Inhalte aus dem abgeschickten Formular enthalten. Zusätzlich können Informationen zum Benutzer und natürlich auch eigene, frei definierte Texte enthalten sein.

 

Template-Verzeichnis 

Wie schon beim Mailback (automatische Email-Benachrichtigung) wird der Aufbau der PDF-Datei über eine php-Datei, oder das PDF-Template  definiert. Das Standard PDF-Template von BreezingForms findet man auf der Website im Admin-Verzeichnis unter folgendem Pfad: 

JoomlaRoot/administrator/components/com_breezingforms/pdftpl/

Achtung: hier hat sich der Verzeichnis-Name der Joomla Komponenten geändert. Ab Version 1.7.1. heißt es com_breezingforms und nicht mehr com_facileforms!

 

Aussehen bestimmen

Standard-Template

Standardmäßig wirkt das folgende Template, das nach der Installation auch bereits im o. g. Verzeichnis existiert. Dieses gibt die Inhalte des ausgefüllten Formulares sowie einige Daten zum User einfach als Auflistung ohne besondere Formatierung aus. 

  • pdf_attachment.php

 

Die PDF-Datei, die damit erzeugt wird sieht dann ziemlich einfach aus:
Screenshot BreezingForms Standard PDF Template

 

Selbst definiertes Template

Möchte man die PDF-Datei etwas anspruchsvoller gestalten, so muss man dafür eine entsprechend html-formatierte Template-Datei im Template-Verzeichnis zur Verfügung stellen.

Diese Datei muss in dem gleichen Verzeichnis liegen wie das Standard-Template:

JoomlaRoot/administrator/components/com_breezingforms/pdftpl/

 

Und sie muss im Dateinamen den Formularnamen enthalten.

  •  formularname_pdf_attachment.php

 

Beispiel:

Formularname = kontaktformular 

PDF-Template-Datei = kontaktformular_pdf_attachment.php

 

Die PDF-Datei, die aus einem selbst definierten PDF-Template erstellt wird, könnte dann so aussehen:

Screenshot BreezingForms selbst definiertes PDF Template


Inhalt der PDF-Datei formatieren

Der Inhalt der PDF-Datei kann für die selbst definierte Variante frei mit HTML und php-Scripten gestaltet und formatiert werden, wobei allerdings beachtet werden muss, dass nur bestimmte html Tags zugelassen sind (die erlaubten Tags sind im Quellcode der php-Datei in einem Kommentar aufgelistet). Anders als bei der Email-Benachrichtigung können hier auch leider keine Stylesheets verwendet werden; Styles müssen hart formatiert werden, also wie in den Webdesign-Anfängen jedem Element im Quellcode separat zugeordnet werden.


Und so kann dann eine PDF-Template-Datei (z. B. kontaktformular_pdf_attachment.php) aussehen: 

<?php
/**
* BreezingForms - A Joomla Forms Application
* @version 1.7.2
* @package BreezingForms
* @copyright (C) 2008-2010 by Markus Bopp
* @license Released under the terms of the GNU General Public License
**/
defined('_JEXEC') or die('Direct Access to this location is not allowed.');
// IMPORTANT!
// Supported Tags: h1, h2, h3, h4, h5, h6, b, u, i, a, img, p, br, strong, em, font, blockquote, li, ul, ol, hr, td, th, tr, table, sup, sub, small

$txt_name = '';
$txt_email = '';
$txt_telefon = '';
$txt_nachricht = '';

if (count($xmldata)){
   foreach ($xmldata as $data) {
      $value = nl2br(htmlentities(substr(is_array($data[_FF_DATA_VALUE]) ? implode('|',$data[_FF_DATA_VALUE]) : $data[_FF_DATA_VALUE],0,10000), ENT_QUOTES, 'UTF-8'));
      switch($data[_FF_DATA_NAME]){
      case 'txt_name':
          $txt_name = $value;
          break;
      case 'txt_email':
          $txt_email = $value;
          break;
      case 'txt_telefon':
          $txt_telefon = $value;
          break;
      case 'txt_nachricht':
          $txt_nachricht = $value;
          break;
      }
    }
}

?>
</head>
<body>
<p><img height="45" width="504" style="margin: 5px auto; margin-left:0; vertical-align: left; display: block;" alt="Logo von www.webdesign-ostholstein.de" src="http://www.webdesign-ostholstein.de/templates/wdo/images/bb-logo.gif" /></p>
<p>&nbsp;</p>
<h2 style="font-size: 1.1em; color: #FD7805;">&nbsp;<br>Vielen Dank f&uuml;r Ihre Nachricht</h2>
<p style="font-size: 0.8em; color: #333333; font-family: Tahoma, Arial, Geneva, sans-serif; ">Wir haben Ihre Nachricht erhalten und werden uns in K&uuml;rze mit Ihnen in Verbindung setzten. Nachfolgend sehen Sie die Daten, die mit dem Kontaktformular an uns &uuml;bermittelt wurden. </p>
<h3 style="font-size: 1.0em; color: #FD7805;">&nbsp;<br>Hier sind Ihre Daten:  </h3>
<table style="border: none; ">
        <tr>
          <th style="font-size: 0.8em; color: #333333;"><strong>Datum:</strong></th>
          <td style="font-size: 0.8em; color: #333333;"><?php echo date("d.m.Y\ H:i")?></td>
        </tr>
        <tr>
          <th style="font-size: 0.8em; color: #333333;"><strong>Name:</strong></th>
          <td style="font-size: 0.8em; color: #333333;"><?php echo $txt_name; ?></td>
        </tr>
        <tr>
          <th style="font-size: 0.8em; color: #333333;"><strong>Email:</strong></th>
          <td style="font-size: 0.8em; color: #333333;"><?php echo $txt_email; ?></td>
        </tr>
        <tr>
          <th style="font-size: 0.8em; color: #333333;"><strong>Telefon: </strong></th>
          <td style="font-size: 0.8em; color: #333333;"><?php echo $txt_telefon; ?></td>
        </tr>
        <tr>
          <th style="font-size: 0.8em; color: #333333;"><strong>Ihre Nachricht:</strong></th>
          <td style="font-size: 0.8em; color: #333333;"><?php echo $txt_nachricht; ?></td>
        </tr>
  </table>
<p><span style="font-size: 0.8em; color: #333333; font-family: Tahoma, Arial, Geneva, sans-serif; ">&nbsp;<br>
Vielen Dank!<br>
Beate Beermann<br />
&nbsp;    </span></p>
<p style="font-size: 0.8em; color: #FD7805;">&nbsp;<br />
Webdesign und mehr... - Beate Beermann Dipl.-Ing. (FH) - Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! - www.webdesign-ostholstein.de</p>

 

Die Abfrage der verwendeten Formularfelder und Definition der Variablen erfolgt dabei mit dem folgenden Code, den ich in der Knowledge Base von Crosstec Solutions gefunden habe (Link siehe unten):


$txt_name = '';
$txt_email = '';
$txt_telefon = '';
$txt_nachricht = '';

if (count($xmldata)){
   foreach ($xmldata as $data) {
      $value = nl2br(htmlentities(substr(is_array($data[_FF_DATA_VALUE]) ? implode('|',$data[_FF_DATA_VALUE]) : $data[_FF_DATA_VALUE],0,10000), ENT_QUOTES, 'UTF-8'));
      switch($data[_FF_DATA_NAME]){
      case 'txt_name':
          $txt_name = $value;
          break;
      case 'txt_email':
          $txt_email = $value;
          break;
      case 'txt_telefon':
          $txt_telefon = $value;
          break;
      case 'txt_nachricht':
          $txt_nachricht = $value;
          break;
      }
    }
}

 
 

 
Weiterführende Informationen

Zu diesem Thema gibt es im Web noch nicht sehr viele Informationen. Ein wenig findet man in der Knowledge Base von Crosstec Solutions, dem Ersteller von BreezingForms:
Changing the attachment's PDF template

Changing the export's PDF template


 

 

Sie benötigen professionelle Ünterstützung bei Joomla? Schreiben Sie mir einfach und ich berate Sie gerne!

Joomla-Tipp: Erstellungszeit ausblenden

Veröffentlicht in Joomla 1.5

Ich mag es ja ganz gerne, wenn geeignete Beiträge im Webdesign mit dem Erstellungsdatum versehen sind. So sieht der User gleich, ob es sich um eine aktuelle Information handelt oder um einen alten Hut. Was ich dabei allerdings nicht so gerne mag, ist die Einblendung der Erstellungszeit, denn die ist für den User in den meisten Fällen völlig irrelevant. Im Joomla! Backend ist das Abschalten dieser Zeitangabe leider nicht vorgesehen; entweder schaltet man alles (Datum und Zeit) aus oder gar nichts.

 

Abhilfe in Joomla! 1.5 schafft hier der Eingriff in die folgende Core-Datei:

language/de-DE/de-DE.ini
  

In Zeile 11 findet man die Definition vom Erstellungsdatum:

DATE_FORMAT_LC2=%A, den %d. %B %Y um %H:%M Uhr 

 

  • Hier muss einfach die Angabe für die Zeit gelöscht werden:
    um %H:%M Uhr

 

  • Wenn man weitere Änderungswünsche hat, wie z. B. den Wochentag nicht mit anzugeben, so kann man dies hier auch vornehmen, indem man die folgenden Zeichen herauslöscht
    %A, den

 

Hinweis: Bei dieser Anpassung muss man bedenken, dass es sich um einen Eingriff in die Core-Dateien handelt. Bei einem Joomla-Update muß die Änderung also evtl. wiederholt werden.
 

 

 

 

Sie benötigen bei Joomla Ünterstützung vom Profi? Schreiben Sie mir einfach und ich berate Sie gerne!

Joomla-Tipp: Einfaches Download-Archiv

Veröffentlicht in Joomla 1.5

Für einen WebDesign Kunden sollte ich ein einfaches, automatisches Download-Archiv erstellen.

  • Automatisch meint dabei: der Kunde muss neue Dateien einfach nur ins Verzeichnis kopieren und schon sind sie auf der Download-Seite verfügbar.
  • Einfach meint: Das Archiv muss wirklich nur die Inhalte des Verzeichnisses darstellen und verlinken.

Eine geeignete Joomla!-Komponente scheint es da für mich nicht zu geben (entweder können sie den Automatismus nicht oder sie schießen weit über das Ziel hinaus oder aber sie laufen nur im legacy mode). Schließlich habe ich eine Lösung gefunden, die durch den Apache-Server selbst zur Verfügung gestellt wird:

 

Verzeichnisansicht mit dem Apache Modul mod_autoindex 

Das Apache Modul mod_autoindex erzeugt eine tabellarische Liste aller in einem Verzeichnis enthaltenen Dateien; der Dateiname ist klickbar, wodurch der Download ausgelöst wird. Zusätzlich können ungewünschte Dateien ausgeblendet werden. Eine Header-Datei mit CSS-Formatierung und einleitenden Worten kann eingebunden werden.

 

So geht's:
  • Downloadverzeichnis erstellen: z. B. meineDomain.de/downloads
    • Datei .htaccess hineinkopieren (steuert, wie und welches Verzeichnis ausgelesen wird)
    • Datei header.htm erstellen und hineinkopieren (enthält den Header der Seite und das Stylesheet)
       
  • in Joomla! einen neuen Menüeintrag Downloads erzeugen:
    • Typ=Wrapper
    • Link auf Download-Verzeichnis (meineDomain.de/downloads)

 

 

Hier die Details:
Inhalt von .htaccess

Options +Indexes
DirectoryIndex index.php index.html

#Header-Datei mit CSS und einleitendem Text
HeaderName header.htm

# diese Dateien nicht anzeigen (/.. = parent directory)
IndexIgnore *.htm .ht*
IndexIgnore /..

# Sortierung absteigend nach Dateiname
IndexOrderDefault Descending Name

#Description nicht anzeigen -> bewirkt, dass kompletter Tabellenkopf nicht angezeigt wird
IndexOptions SuppressDescription
IndexOptions XHTML

# Download erzwingen für angegebene Dateitypen (ansonsten wird das Ziel im iFrame angezeigt)
<FilesMatch "\.(txt|pdf|doc|xls)$">
ForceType application/x-download
</FilesMatch>

 

Weitere Informationen zur Verwendung des Moduls mod_autoindex gibt es unter:

 Außerdem sehr hilfreich war mir ein Beitrag im joomla-portal-Forum.

 

 

Komfort

Zusätzlichen Komfort gibt es bei dieser Lösung nicht. Ich hatte zum Beispiel an eine Lösung für Spracheinstellungen gedacht (Ausgabe gibt es ausschließlich in englisch, daher blende ich den Tabellenkopf ganz aus) oder an zusätliche Felder für Informationen zu den Dateien (ich lege jetzt alle Informationen in den Dateinamen der Download-Datei).

 

So sieht's aus:

Link: Download-Archiv

 

 

 

 

Sie benötigen professionelle Ünterstützung bei Joomla? Schreiben Sie mir einfach und ich berate Sie gerne!

Weitere Beiträge...