Upload-Template
In diesem Kapitel lernen Sie ein Upload-Template für eine Medienrubrik zu erstellen.
Konfiguration der Medienrubrik#
Jede Medienrubrik benötigt ein Upload-Template, das bei der Konfiguration der Medienrubrik angegeben wird. Im Verzeichnis site/sample/templates finden Sie drei Beispiel-Templates an denen Sie sich bei der Erstellung Ihres Upload-Templates orientieren können: upload-minimal.htms
, upload-advanced.htms
und upload-expert.htms
Struktur des Upload-Templates#
Ein Upload-Template in imperia benötigte vor imperia 11.4 immer die Anweisungen <!--upload_start-->
und <!--upload_end-->
, um das Upload-Feld zu markieren. Diese Anweisungen sind nun nicht mehr nötig. Ein minimales Upload-Template, das nur den Titel zusätzlich erfasst, sieht aktuell so aus:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dateien hochladen</title>
</head>
<body>
<!--template-description:Upload Minimal-->
<!--formstart-->
<?imperia asset_data
name: title
label: Titel
source: *:headline,*:title,*:objectname
hint: Unter diesem Titel finden Sie die Datei im CMS wieder
?>
<!--formend-->
</body>
</html>
Beschreibung von Medieninhalten#
Eine gute Beschreibung von Medieninhalten ist ein Thema im Content-Management, das in vielen Bereichen von zentraler Wichtigkeit ist, dem aber häufig erst nachträgliche Beachtung geschenkt wird. Gut ausgezeichnete Medieninhalte sind ein wichtiger Baustein in der Barrierefreiheit und für die Auffindbarkeit durch Suchmaschinen. Rechtliche Pflichtangaben wie der Copyright-Hinweis gehören zum kleinen Einmaleins der Auszeichnung von Medieninhalten. Viele Medien haben etablierte Formate, um Metadaten zu erfassen. Insbesondere bei Bildern gibt es eine große Bandbreite von standardisierten Metadaten-Formaten, wie z.B. EXIF, XMP oder IPTC. Gerade wenn die Bilder von einer Bildagentur stammen, enthalten sie üblicherweise bereits einen Beschreibungstext, einen Titel und einen Copyright-Hinweis. Professionelle Fotografinnen und Fotografen pflegen häufig zumindest die rechtlichen Angaben zu Copyright und Urheberschaft. Einige Redaktionen setzen aber auch externe Medien-Verwaltungssysteme ein, um die Metadaten der Medien zentral zu erfassen.
Je nach Ursprung Ihrer Medien ist die Chance daher nicht schlecht, dass eine Mediendatei bereits viele interessante Informationen enthält, die man sich redaktionell zunutze machen kann. Seit imperia 11.4 lassen sich die Metadaten nun sehr benutzerfreundlich beim Hochladen aus den Medien auslesen und intern weiterverwenden.
Medien-Metadaten können aber auch ein Sicherheitsrisiko sein. Vertrauliche Informationen, die über die Metadaten in Ihren Medien gespeichert sind, können durch die Veröffentlichung einer Webseite ungewollt an die Öffentlichkeit geraten. Mit imperia 11.4 können Sie ihre Medien beim Upload großflächig bereinigen und nur unbedenkliche Informationen bewahren.
Processing-Instruction asset_data#
In Templates, die als Upload-Template in Medien-Rubriken genutzt werden, gibt es nun eine Processing-Instruction (kurz PI) mit dem Namen asset_data
. PIs kennen Sie auch aus anderen Kontexten, wie z.B. die PIs <?imperia mam?>
oder <?imperia iwe2?>
.
Das PI <?imperia asset_data?>
hat verschiedene Aufgaben. Die Hauptaufgabe ist die Generierung von speziellen Inputfeldern oder Textareas, die für die Nutzung von Datei-Metadaten erweitert sind.
Beispiel für ein Inputfeld zur Eingabe des Titels der Datei:
<?imperia asset_data
name: title
label: Titel
source: *:headline,*:title,EXIF:XPTitle,IPTC:ObjectName
hint: Unter diesem Titel finden Sie das Bild im CMS wieder
required: 0
set: EXIF:XPTitle,IPTC:ObjectName
?>
Über die Option source
werden die angegebenen Feldnamen verschiedener Metadaten-Formate, wie EXIF, XMP oder IPTC durchsucht und diesem Feld zur Verfügung gestellt.
Die Syntax *:feldname
bedeutet, dass sämtliche zur Verfügung stehenden Metadaten-Formate durchsucht werden. Alternativ können Sie ein Format auch explizit (iptc:feldname
) angeben.
Option | Beschreibung | Beispiel |
---|---|---|
source | Mit diesem Parameter wird die Metadaten-Liste ausgelesen und die Ergebnisse dem Eingabefeld zur Verfügung gestellt. | source: IPTC:ObjectName |
name | Parameter zur Angabe der Metainfo-Variable, in die der eingegebene Wert gespeichert wird. | name: title |
label | In diesem Parameter wird die Beschriftung des Inputfelds bzw. der Textarea angegeben. | label: Titel |
hint | In diesem Parameter wird der Helpertext angegeben, der unterhalb des Inputfeldes bzw. der Textarea angezeigt wird. | hint: Unter diesem Namen finden Sie diese Datei im Medien-Manager wieder |
no_autofill | Mit diesem Parameter können Sie die automatische Vorbefüllung von Inhalten aus den Bildmetadaten unterbinden. | no_autofill: 1 |
set | Über diesen Parameter können Sie die Eingaben zurück in die Metadaten des Assets schreiben. | set: EXIF:XPTitle |
required | Über diesen Parameter können Sie bestimmen, ob das Feld ausgefüllt werden muss, um den Upload abzuschließen | required:1 |
Medien-Metadaten setzen, löschen oder bewahren#
Mit der PI asset_data
können Medien-Metadaten nicht nur für die redaktionelle Unterstützung benutzt werden, die Medien-Metadaten können beim Upload auch gesäubert werden. So haben Sie die Kontrolle darüber, welche Metadaten in ihren veröffentlichten Medien angezeigt werden.
Für das Management der Medien-Metadaten gibt es drei Parameter: set
, delete
und preserve
. Der Parameter set
wurde oben schon erwähnt. Er dient dazu, die redaktionellen Inhalte zurück in die Metadaten zu schreiben. Der Parameter set
hat die höchste Priorität. Alle Inhalte die über ein asset_data
Inputfeld mit der Option set
gesetzt werden, werden unabhängig von den Löscheinstellungen in die Metadaten des jeweiligen Bildes geschrieben.
Mit den anderen beiden Optionen delete
und preserve
können Sie kontrollieren, welche der eingangs vorhandenen Metadaten gelöscht werden sollen. Da die Liste der Metadaten-Felder sehr lang ist und noch erweitert werden kann, empfehlen wir folgendes Vorgehen, damit Sie die veröffentlichten Metadaten effektiv unter Kontrolle bekommen.
Markieren Sie zunächst mit der Option delete
alle Metadaten-Felder für die Löschung und nehmen Sie anschließend die Metadatenfelder, die Sie bewahren möchten, mit der Option preserve
wieder von dieser Lösung aus. Die Felder, die Sie an anderer Stelle mit set
direkt setzen, müssen Sie nicht bewahren. Diese sind von der Löschung generell ausgenommen.
Wenn Sie die folgenden PI-Optionen in ihrem Upload-Template nutzen, werden alle Bildmetadaten beim Upload gelöscht. Ausgenommen davon sind die beiden Copyright-Angaben der Bildmetadaten-Formate Exif und IPTC sowie alle Bildmetadaten die an anderer Stelle explizit via set
gesetzt wurden.
<?imperia asset_data
delete: *:*
preserve: EXIF:copyright, IPTC:CopyrightNotice
?>
Bitte beachten Sie aber, dass alle Metadatenformate einige Informationen aus dem Bild automatisiert setzen, was zur Folge hat, dass diese nicht löschbar sind.
Upload-Templates nach Dateitypen#
Über bedingte Anweisungen können Sie für unterschiedliche Dateitypen auch unterschiedliche Templates, also unterschiedliche Eingabefelder, laden. Eine Eingabe, die für Bilddateien sinnvoll ist, muss nicht auch für PDF-Dokumente sinnvoll sein. Die Unterscheidung erfolgt auf der Ebene der einzelnen Eingabefelder durch bedingte Anweisungen (IF, ELSIF, ELSE), wie Sie es aus der imperia Template-Sprache kennen. Die Funktion, mit der die temporär hochgeladene Datei ausgewertet werden kann, heißt XX-ASSET
. Und so benutzen Sie die Funktion in einer bedingten Anweisung:
#IF ("<!--XX-ASSET(File:MIMEType):1-->" REQ "^image\/")
Alle Eingabefelder für Bilddateien
#ELSIF ("<!--XX-ASSET(File:MIMEType):1-->" REQ "^application\/pdf$")
Alle Eingabefelder für PDF-Dokumente
#ELSE
Alle Eingabefelder für sonstige Dateitypen
#ENDIF
Eigene Eingabefelder#
In vielen Fällen wollen Sie eigene Eingabefelder und Felder, die durch die PI asset_data
generiert wurden, kombinieren. Damit alle Felder dasselbe Layout haben, benutzen Sie für die eigenen Felder diese HTML-Struktur:
<div class="custom_asset_field_group">
<label for="copyright">Copyright</label>
<input name="IMPERIA:copyright" id="copyright" class="i-custom-field" type="text" />
<span class="hint">Vorname Nachname, Quelle</span>
</div>
Einschränkung der akzeptierten Dateitypen und -größen#
Mit Hilfe der Metavariable __imperia_upload_restrictions
legen Sie für eine Rubrik Einschränkungen bezüglich der akzeptierten Dateitypen und -größen fest.
So lässt sich leichter kontrollieren, welche Assets in einer Rubrik hochgeladen werden können, um die System- und Benutzersicherheit sowie die Integrität der Medienbibliothek zu gewährleisten.
Das Ganze wird unterstützt durch einen Mechanismus, der nach dem Upload bereits hochgeladene Dateien überprüft und die Assets nach dem Upload validiert.
Die Metavariable muss ein gültiges JSON-Objekt enthalten. Die unterstützten Einschränkungen in Form von JSON keys sind:
max_size: <number in KB>
min_size: <number in KB>
allowed_filetypes: <array of mimetypes that can be uploaded>
Beispiel für ein JSON-Objekt:
{
"max_size":3550,
"min_size":2000,
"allowed_filetypes":[
"png",
"image/jpeg"
]
}
Re-Import einer vorhandenen Mediendatei
- Wenn beim Re-Import eines Assets Upload-Beschränkungen für eine Kategorie festgelegt wurden, werden diese NICHT auf das re-importierte Asset angewendet.
- Wenn das Asset ersetzt wird, wird die neu hochgeladene Datei mit den Überprüfungen vor und nach dem Upload validiert.
Hinweis zum alten Direkt-Upload per Drag-and-Drop#
Vor imperia 11.4 gab es noch einen tabellarischen Direktupload, der Assets am Workflow vorbei direkt in die ausgewählte Rubrik hochlädt. Diesen Direktupload gibt es in abgewandelter Form weiterhin.
Wenn Sie also weiterhin Dateien ohne Zwischenschritt direkt in eine Rubrik hochladen wollen und gut gepflegte Titel, Copyright-Hinweise und Alt-Texte in Ihrem Szenario keine Priorität haben, dann können Sie in der Systemkonfiguration mittels MAM_ENABLE_INSTANTUPLOAD = 1
diesen alternativen Upload aktivieren. Und natürlich lassen sich auch hier nach wie vor Zusatzfelder aktivieren, allerdings nur in dem begrenzten Umfang, wie dies auch vor imperia 11.4 möglich war. In der Systemkonfiguration können zusätzliche Eingabefelder via MAM_INSTANTUPLOAD_FIELDS = title:Titel:1,copyright:Copyright:1
hinzugefügt werden. Es lassen sich mehrere Felder kommasepariert angeben. Jedes Eingabefeld verlangt die Angabe von drei Werten: Metafeldname (z.B. title), Bezeichnung (z.B. Titel) und Pflichtfeld (z.B. 1).