Transportverfahren | Übertragung per Restful API (https) |
---|---|
Objekt | Artikel im JSON und Bilder als strukturiertes Objekt im JSON, Artikel-ID als eindeutiges Merkmal (document ID) |
Trigger | Zeitlich gesteuerter Poll durch PRINT NGEN (Pull alle 15 Sekunden, sofern vorhergehender Pull durchgeführt), Artikel-ID = eindeutiges Merkmal |
Typische Drittsysteme | Livingdocs |
...
Folgende Metadaten der Livingdocs Bilder-Daten können in PRINT NGEN dargestellt werden:
Pixeldaten
Bildausschnitt (optional)
Dateiname
Bildunterschrift (optional)
Quelle (optional)
Bildursprung (optional)
Ursprüngliche Bild-ID (optional)
Workflow
Artikel
Durch entsprechend automatisierte Workflows können Artikel, die in Livingdocs publiziert werden, automatisiert in der PRINT NGEN Datenbank gespeichert werden. Diese Workflows greifen je Objekt.
...
Das Gleiche gilt auch, wenn die Ausgabe in Livingdocs geändert wird. D. h. wird ein Livingdocs-Artikel mit der Ausgabe A publiziert, anschließend die Ausgabe in Livingdocs zur Ausgabe B geändert und erneut publiziert, bleibt der Artikel in PRINT NGEN zur Ausgabe A wie bisher bestehen. Beim zweiten Publizieren wird in PRINT NGEN ein Artikel zur Ausgabe B erstellt.
Bilder in Artikel
Enthält ein Livingdocs-Artikel Bilder, dann werden diese nach PRINT NGEN importiert und an den Artikel gehängt. Das erste Bild des Livingdocs-Artikels wird als Produktionskopie in den Bildbereich des NGEN-Artikels platziert. Für den Import der Bilder wird standardmäßig der Pfad “originalUrl” aus dem Artikel-JSON verwendet. Wenn das Bild aus “originalUrl” nicht gefunden wird, wird das Bild aus “url” abgeholtArtikel-JSON verwendet. Wenn das Bild aus “originalUrl” nicht gefunden wird, wird das Bild aus “url” abgeholt.
Optional kann ein Bildausschnitt als relatives Rechteck in 1/10000 Einheiten (“height” ist 10000 bei einem Ausschnitt über die volle Höhe des Bildes, “width” ist 10000 bei einem Ausschnitt über die volle Breite des Bildes) mit übergeben werden, welcher in PRINT NGEN als Softcrop am Bild gesetzt wird. Der Bildausschnitt wird nur übernommen, wenn das Bild aus dem Pfad “originalUrl” importiert wurde. Der Bildbereich des Artikels wird nicht automatisch an den Bildausschnitt angepasst. Bei Übertragung eines invaliden Bildausschnitts (z.B. negative Werte oder Werte über 10000) wird kein Bildausschnitt gesetzt.
Das Erstellen und Publizieren eines Livingdocs-Artikels ist in nachfolgenden Videos beispielhaft skizziert (die gezeigten Metadaten beschränken sich im Video überwiegend auf die Pflichtfelder):
...
Feld | Inhalt | Option |
"id" | ID des Elements im Artikel | - |
"component" | Element des Artikels, z. B.:
| - |
"content": { component: "image", “content”: { “image”: { "originalUrl" }}} | URL des Original-Bildes. Wird standardmäßig zum Abholen des Bildes verwendet. | erforderlich |
"content": { component: "image", “content”: { “image”: { "url" }}} | URL des platzierten Bildes. Wenn das Bild aus “originalUrl” nicht gefunden wird, wird das Bild aus “url” abgeholt. | optional |
"content": { component: "image", “content”: { “image”: { "origins": { "name" }}}} | Ursprung/Quelle des Bildes z. B. hugo. Wird kein Ursprung übergeben wird standardmäßig BildUrsprung=Livingdocs gesetzt. | optional |
"content": { component: "image", “content”: { “image”: { "origins": { "identifier" }}}} | Bild-ID Wird in die NGEN Bildeigenschaft DBildArchivID übernommen. |
|
"content": { component: "image", “content”: { “image”: { "crop": { "x" }}}} | X-Koordinate des Ausschnitts von links oben in 1/10000 Einheiten- | optional |
"content": { component: "image", “content”: { “image”: { "crop": { "y" }}}} | Y-Koordinate des Ausschnitts von links oben in 1/10000 Einheiten- | optional |
"content": { component: "image", “content”: { “image”: { "crop": { "width" }}}} | Breite des Ausschnitts in Pixel 1/10000 Einheiten relativ zur Pixelgröße des Originalbildes aus der originalUrlGesamtbreite des Bildes | optional |
"content": { component: "image", “content”: { “image”: { "crop": { "height" }}}} | Höhe des Ausschnitts in Pixel 1/10000 Einheiten relativ zur Pixelgröße des Originalbildes aus der originalUrlGesamthöhe des Bildes | optional |
"content": { component: "image", “content”: { "caption" }} | Bildunterschrift | optional |
"content": { component: "image", “content”: { "source" }} | Bildquelle "labelSource" "source" werden in das Bildquelle-Tag der BU übernommen (in dieser Reihenfolge mit Leerzeichen getrennt) | optional |
"content": { component: "image", “content”: { "labelSource" }} | Quellverweis "labelSource" "source" werden in das Bildquelle-Tag der BU übernommen (in dieser Reihenfolge mit Leerzeichen getrennt) | optional |
"content": { component: "head" oder: "header", content: { "catchline" }} | Dachzeile des Artikels | optional |
"content": { component: "head" oder: "header", content: { "title" }} | Titel des Artikels | erforderlich |
"content": { component: "head" oder: "header", content: { "lead" }} | Unterzeile des Artikels | optional |
"content": { component: "head" oder: "header", content: { "author" }} | Autor:in des Artikels | optional |
"content": { component: "head" oder: "header", content: { "authorShortnames" }} | Autor:innenkürzel | optional |
"content": { component: "head" oder: "header", content: { "city" }} | Ortsmarke im Text des Artikels | optional |
"content": { component: "lead-p", content: { "text" }} | Vorspann des Artikels | optional |
"content": { component: "lead-p", content: { "opener" }} | Ortsmarkte im Vorspann des Artikels | optional |
"position" | z. B. fixed | - |
"content": { component: "p", content: { "text" }} | Absatz eines Artikels | optional |
"content": { component: “subtitle”, “content“: { “title“ }} | Zwischentitel im Artikel | optional |
"content": { component: “list”, “containers”: { “list” }} | Liste im Artikel | optional |
"content": { component: “list” , “containers”: { “list”: [{ “component”: “list-item”, “content”: { “text” }}]}} | Listenelement | optional |
"content": { component: “quote” , “content”: { “text” }} | Zitat im Artikel | optional |
"content": { component: “quote” , “content”: { “source” }} | Autor:in/Quelle des Zitats | optional |
"content": { component: "question" , "content": { "text" }} | Frage | optional |
"content": { component: "answer" , "content": { "text" }} | Antwort | optional |
"content": {"component": "infobox","content": { "title": "", "text": "", "image": {} "caption": "", "source": "" }} | Infobox im Artikel (in PRINT NGEN als eigenständiger Artikel) mit oder ohne Bild. Im Text sind Auszeichnungen (strong, em, p) möglich. Weitere Components (list, quote, question, answer) dürfen im Text nicht übergeben werden. Für Infoboxbilder können die gleichen Felder übergeben werden wie bei den Artikelbildern. | optional |
...
Code Block |
---|
{ "systemdata": { "projectId": 16, "channelId": 16, "documentId": 44, "contentType": "print", "documentType": "article", "design": { "name": "berliner-zeitungtageszeitung", "version": "0.0.100" } }, "metadata": { "title": "Title", "publications": [{ "object": "BZta", "name": "Berliner Zeitungtageszeitung", "value": "Berliner Zeitungta-ma", "category": "Berlinpol", "printContentType": "Standard", "pageIndex": "1", "authorPosition": "AutorBereich" }, { "object": "BKta", "name": "Berliner KurierTageszeitung", "value": "Berliner Kurierta-dah", "category": "Berlinpol", "printContentType": "Aufmacher", "pageIndex": "3", "collective": "Sonderthema XYZ", "authorPosition": "AutorAnfang" } ], "publish-date": "2020-03-17T10:35:00.000Z", "expire-date": "2020-04-30T09:35:00.000Z" }, "livingdoc": { "content": { "id": "doc-1e3k0qt0h0", "component": "head", "content": { "catchline": "Catchline", "title": "Title", "lead": "Lead", "author": "LukasMax PeyerMustermann", "authorShortnames": "LPMM" }, "position": "fixed" }, { "id": "doc-1e3k0qt0i0", "component": "lead-p", "content": { "opener": "Lead Paragraph", "text": "Text" } }, { "id": "doc-1e3k0qt0i1", "component": "p", "content": { "text": "Text" } }, { "id": "doc-1e3k0ts9b0", "component": "image", "content": { "image": { "originalUrl": "http://livingdocs-images-dev.s3.amazonaws.com/2020/1/28/6c0b3ce3-0289-44da-9610-91f1d9773419.jpeg", "url": "https://livingdocs-dev.imgix.net/2020/1/28/6c0b3ce3-0289-44da-9610-91f1d9773419.jpeg?rect=0%2C20%2C1200%2C675&auto=format", "width": 1200, "height": 714, "mimeType": "image/jpeg", "imageService": "imgix", "crop": { "x": 02000, "y": 202000, "width": 120010000, "height": 675, "name": "16:9"5000 } "origins": [ { "name": "archiv A", "identifier": "abc-123" }] }, "caption": "Image Caption", "labelSource": "Source", "source": "Agency" } }, { "id": "doc-1e3k0sng70", "component": "quote", "content": { "text": "Quote", "source": "Quote Author" } }, { "component": "question", "id": "doc-1e3k0sng70", "content": { "text": "Frage Inhalt." } }, { "component": "answer", "id": "doc-1e3k0sng70", "content": { "text": "Antwort Inhalt." } }, { "id": "doc-1e3k0sveu0", "component": "subtitle", "content": { "title": "Subtitle" } }, { "id": "doc-1e3k0s91s0", "component": "list", "content": { "title": "List Title" }, "containers": { "list": [ { "id": "doc-1e3k0sacb0", "component": "list-item", "content": { "text": "Item 1" } }, { "id": "doc-1e3k0sgrn0", "component": "list-item", "content": { "text": "Item 2" } } ] } } ], "design": { "name": "berliner-zeitung", "version": "0.0.100" }, "layout": "print" } } |
...
Include Page | ||||
---|---|---|---|---|
|
Nur für PEIQ Mitarbeiter:innen: