- Created by Jan Ernst (Unlicensed) , last modified by Florian Pieper on 05.03.2024
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 6 Next »
30.11.2023 → neuer Eingangsparameter “predfefinedsearchterm" hinzugefügt
07.09.2023 → neuer Eingangsparameter “suppliernamecursive“ hinzugefügt
09.08.2023 → neuer Eingangsparameter “disableMetaTag” hinzugefügt
09.08.2023 → neuen Eingangsparameter “excludefilters” hinzugefügt
02.08.2023 → neuen Eingangsparameter “usemultitree” hinzugefügt
28.07.2023 → neuen Eingangsparameter “usesubstitutes” hinzugefügt
28.07.2023 → neuen Eingangsparameter “usedocuments” hinzugefügt
28.07.2023 → neuen Eingangsparameter “usebimcad” hinzugefügt
10.05.2023 → Erweiterung der “predefinedFilters” um die optionalen Felder “disabled” & “hidden”
10.05.2023 → neues Event “selectedarticle“ hinzugefügt
10.05.2023 → neuen Eingangsparameter “articleselectionmode“ hinzugefügt
24.11.2022 → neues Event pdflinkextended
30.09.2022 → neuer Eingangsparameter “downloadinnewtabtarget“ hinzugefügt
28.09.2022 → neue Eingangsparameter für externe Links hinzugefügt (externallinkid, externalinkchannelid, widgetstate)
26.09.2022 → Einbindung über Widget-Loader V2.0.0 hinzugefügt
09.08.2022 → Eingangsevent closeAllDialogs hinzugefügt
19.07.222 → pdflink Event hinzugefügt
06.07.2022
shopcart Event erweitert
dialogstatus Event hinzugefügt
Parameter style, predifinedfilters und pdfviewer hinzugefügt
04.05.2022 → Screenshots ausgetauscht
22.03.22 → Hinzufügen dialogstatus
02.03.2022 → Umstellen Widget-Loader-Version auf 1.0.1
02.03.2022 → Umstellen URLs von GC nach OpenDatacheck
28.01.2022 → Erstellen der Dokumentation als Einzelseite
Inhalt
Integration per “xs-loader” Widget
Alle Widgets werden über den “xs-loader” eingebunden. Bitte machen Sie sich mit der Dokumentation https://itek-wissen.atlassian.net/wiki/spaces/SOF/pages/2841313293 vertraut.
Parameter “xs-deepsearch”
Eingang | Ab Version | |||
---|---|---|---|---|
Parameter | Pflicht | Beschreibung | Beispielwert |
|
channelid | Nein | Wenn eine ChannelID angegeben wird, wird die Anzeige der DeepSearch auf diese angefragten Kanäle eingeschrenkt. Die ChannelIDs müssen dabei immer in einem Array übergeben werden. Der Benutzer muss dem angegeben Channel zugeordnet am System zugeordnet sein. | [2, 5] | Vor 2.0.19 |
channelfocus | Nein | Gibt an welcher Channel nach dem Starten des Widgets fokussiert werden soll. Wenn nicht angegeben oder die ChannelID nicht vorhanden ist, wird der erste Channel fokussiert. | 5 | Vor 2.0.19 |
predefinedarchivedfiltervalue | Nein | Gibt an ob der Archiviert Filter beim Aufruf auf den gewünschten Wert gesetzt ist. Mögliche Werte:
| true | Vor 2.0.19 |
prefermanufacturerlogoview | Nein | Gibt an, ob die Herstelleransicht verwendet werden soll bis:
Mögliche Werte:
| true | Vor 2.0.19 |
externalsearch | Nein |
| false | Vor 2.0.19 |
usebaudocs | Nein | Integration des BauDocs-Widget innerhalb der Artikeldetails | false | Vor 2.0.19 |
baudocsaccesstoken | Ja, wenn “usebaudocs” = true | OAuth2 Zugriffstoken für das BauDocssystem. Dieses Token muss zuvor vom integrierenden System am BauDocssystem angefragt werden. | - | Vor 2.0.19 |
baudocsrefreshtoken | Ja, wenn “usebaudocs” = true | OAuth2 Refreshtoken für das BauDocssystem. Dieses Token muss zuvor vom integrierenden System am BauDocssystem angefragt werden. | - | Vor 2.0.19 |
manufactureridtype | Ja, wenn “usebaudocs” = true | Der IDTyp der bei einer BauDocsanfrage zum Identifizieren / Mappen mitgesendet wird. Diese Funktionalität steht nur zur Verfügung, wenn eine IDHUB Integration beauftragt wurde. | odc | Vor 2.0.19 |
videodefaultposter | Nein | Im Web verfügbares Bild das beim starten des Videos angezeigt wird, wenn kein Videoposter vorhanden ist. | Vor 2.0.19 | |
removeroundbracketsinsuppliername | Nein | Entfernt Texte die im Lieferantennamen in Klammern umschlossen sind. Beispiel: “Lieferant(abc)” wird in der Oberfläche ersetzt durch “Lieferant”. Standardwert ist false. | true | Vor 2.0.19 |
removesquarebracketsinsuppliername | Nein | Entfernt Texte die im Lieferantennamen in eckigen Klammern umschlossen sind. Beispiel: “Lieferant[abc]” wird in der Oberfläche ersetzt durch “Lieferant”. Standardwert ist false. | true | Vor 2.0.19 |
widgetstate | Nein | Initialisiert das Widget nach einem Rücksprung. | c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi9wYWdlL3RodW1ibmFpbHMvMTAzMTkyNjRfOTA2LnBkZi5qcGVn | Vor 2.0.19 |
style | Nein | JSON-Objekt zur Definition der Primär- und Sekundär-Farbe des Widgets. Das Objekt hat zwei Felder:
| "style":{ "primarycolor": "#616161", "secondarycolor": "#D3D3D3" } | Vor 2.0.19 |
predfefinedsearchterm | Nein | Mit diesem Parameter ist es möglich den Suchbegriff vor zu belegen. Der übergebene Wert wird bei der initialen Suche verwendet und taucht im Suchschlitz auf. Wird der Parameter nicht angegeben wird die Suche ohne Suchbegriff gestartet. | "predfefinedsearchterm": "Waschtisch" | 2.0.20 |
predifinedfilters | Nein | Filter die beim Einsprung in das DeepSearch-Widget vorausgewählt seien sollen. Die Filtereinstellung kann pro Kanal vorgenommen werden. Felder im
Es gibt die Filtertypen “Auswahl” (eine Liste von Filteroptionen) und “Bereich” (Einschränkung per minimal und maximal Wert z.B. bei Preisen). Im Feld Felder für den Typ “Auswahl”:
Felder für den Typ “Bereich”:
| "predifinedfilters":[ { "channelid": 1, "filters":[ { "name": "warengruppe", "values": ["Washlets", "WCs"] "disabled": false, "hidden": true }, { "name": "preis", "minvalue": 100, "maxvalue": 10000 } ] }, { "channelid": 2, "filters": [ { "name": "infoPackageName.name", "values": ["Preisliste", "Price List"] "disabled": true, } ] } ] | Vor 2.0.19 |
excludefilters | nein | Filter die Werte auschließen. Das Verhalten ist gleichzusetzen mit einer Blacklist. Die Filtereinstellung kann pro Kanal vorgenommen werden. Felder im
Es gibt die Filtertypen “Auswahl” (eine Liste von Filteroptionen) und “Bereich” (Einschränkung per minimal und maximal Wert z.B. bei Preisen). Im Feld Felder für den Typ “Auswahl”:
| "excludefilters":[ { "channelid": 1, "filters":[ { "name": "warengruppe", "values": ["Washlets", "WCs"] } }, { "channelid": 2, "filters": [ { "name": "infoPackageName.name", "values": ["Preisliste", "Price List"] } ] } ] | Vor 2.0.19 |
pdfviewer | nein | Das Objekt dient als Konfigurationsobjekt für den PDF-Viewer Aktuell gibt es nur eine Oberkategorie
Alle Werte werden als Pixel-Werte implementiert. Eine Einheit muss nicht zwingend angegeben werden. | "pdfviewer":{ "position":{ "top": "150px", "right": "20px", "bottom": "50px", "left": "20px" } } | Vor 2.0.19 |
downloadinnewtab | Nein | Wird der Parameter auf true gesetzt, so öffnet sich beim klick auf den Downloadbutton ein neuer Tab und die Datei wird heruntergeladen | { ... "downloadinnewtab": true }
| Vor 2.0.19 |
downloadinnewtabtarget | Nein | In Verbindung mit “downloadinnewtab” zu verwenden. Wird nur verwendet, wenn “downloadinnewtab” auf true gesetzt ist Gibt das Ziel an, das die Download-URL öffnen soll Im Standard oder wenn kein Wert gesetzt ist, wird “_blank“ verwendet | { ... "downloadinnewtabtarget": "_parent" }
| Vor 2.0.19 |
externallinkid | Nein | Die link ID der hochgeladenen Datei, die beim Aufruf des Widgets geöffnet werden soll. Muss zusammen mit “externallinkchannelid” gesetzt werden | { ... "externallinkid": "4233358a-52ca-4656-ac4e-f8a4305143da" } | Vor 2.0.19 |
externallinkchannelid | Nein | Der Kanal in dem die Datei, die mit “externallinkid” referenziert wurde, hinterlegt ist. Muss zusammen mit “externallinkid” gesetzt werden | { ... "externallinkchannelid": 2 } | Vor 2.0.19 |
widgetstate | Nein | Alle GET-Parameter der Deep-Search als Base64 String. Damit kann eine bestimmte Ansicht sofort beim Öffnen der Deep-Search geladen werden. | { ... "widgetstate":"eyJhcHBTdGF0ZSI6eyJ0ZXJtIjoiIiwiZm9jdXMiOjIsInRhYmRhdGEiOiJbe1widGFiXCI6MCxcImNoYW5uZWxpZFwiOjEsXCJkYXRhXCI6e1wicGFcIjowLFwicmFcIjoyNSxcImZjYVwiOjEwLFwiZmFcIjp7XCJzZWxlY3Rpb25cIjpbe1wiY2F0ZWdvcnlcIjpcImhlcnN0ZWxsZXJOYW1lXCIsXCJvcHRpb25zXCI6W1wiUmljaHRlcm1laWVyU3VwcGxpZXJcIl19XSxcInJhbmdlXCI6W119LFwic2NhXCI6XCJcIixcInNvYVwiOlwiXCIsXCJ2bWFcIjpcInRcIixcInJmYlwiOlt7XCJjb2x1bW5OYW1lXCI6XCJwcmVpc1wiLFwiZmxvb3JcIjowLFwiY2VpbGluZ1wiOjMwMzk5LjI1fV19fSx7XCJ0YWJcIjoxLFwiY2hhbm5lbGlkXCI6NTIsXCJkYXRhXCI6e1wicGRcIjowLFwicmRcIjoyNSxcImZjZFwiOjEwLFwiZmRcIjp7XCJzZWxlY3Rpb25cIjpbe1wiY2F0ZWdvcnlcIjpcInN1cHBsaWVyTmFtZVwiLFwib3B0aW9uc1wiOltcIlJpY2h0ZXJtZWllclN1cHBsaWVyXCJdfV0sXCJyYW5nZVwiOltdfSxcInNjZFwiOlwiXCIsXCJzb2RcIjpcIlwiLFwidm1kXCI6XCJjXCIsXCJyZmJcIjpbXX19LHtcInRhYlwiOjEsXCJjaGFubmVsaWRcIjo0OCxcImRhdGFcIjp7XCJwZFwiOjAsXCJyZFwiOjI1LFwiZmNkXCI6MTAsXCJmZFwiOntcInNlbGVjdGlvblwiOlt7XCJjYXRlZ29yeVwiOlwic3VwcGxpZXJOYW1lXCIsXCJvcHRpb25zXCI6W1wiUmljaHRlcm1laWVyU3VwcGxpZXJcIl19XSxcInJhbmdlXCI6W119LFwic2NkXCI6XCJcIixcInNvZFwiOlwiXCIsXCJ2bWRcIjpcImNcIixcInJmYlwiOltdfX0se1widGFiXCI6MSxcImNoYW5uZWxpZFwiOjIsXCJkYXRhXCI6e1wicGRcIjowLFwicmRcIjoyNSxcImZjZFwiOjEwLFwiZmRcIjp7XCJzZWxlY3Rpb25cIjpbe1wiY2F0ZWdvcnlcIjpcInN1cHBsaWVyTmFtZVwiLFwib3B0aW9uc1wiOltcIlJpY2h0ZXJtZWllclN1cHBsaWVyXCJdfV0sXCJyYW5nZVwiOltdfSxcInNjZFwiOlwiXCIsXCJzb2RcIjpcIlwiLFwidm1kXCI6XCJjXCIsXCJyZmJcIjpbXX19LHtcInRhYlwiOjEsXCJjaGFubmVsaWRcIjo1MCxcImRhdGFcIjp7XCJwZFwiOjAsXCJyZFwiOjI1LFwiZmNkXCI6MTAsXCJmZFwiOntcInNlbGVjdGlvblwiOlt7XCJjYXRlZ29yeVwiOlwic3VwcGxpZXJOYW1lXCIsXCJvcHRpb25zXCI6W1wiUmljaHRlcm1laWVyU3VwcGxpZXJcIl19XSxcInJhbmdlXCI6W119LFwic2NkXCI6XCJcIixcInNvZFwiOlwiXCIsXCJ2bWRcIjpcImNcIixcInJmYlwiOltdfX0se1widGFiXCI6MSxcImNoYW5uZWxpZFwiOjYsXCJkYXRhXCI6e1wicGRcIjowLFwicmRcIjoyNSxcImZjZFwiOjEwLFwiZmRcIjp7XCJzZWxlY3Rpb25cIjpbe1wiY2F0ZWdvcnlcIjpcInN1cHBsaWVyTmFtZVwiLFwib3B0aW9uc1wiOltcIlJpY2h0ZXJtZWllclN1cHBsaWVyXCJdfV0sXCJyYW5nZVwiOltdfSxcInNjZFwiOlwiXCIsXCJzb2RcIjpcIlwiLFwidm1kXCI6XCJjXCIsXCJyZmJcIjpbXX19LHtcInRhYlwiOjIsXCJjaGFubmVsaWRcIjo0NCxcImRhdGFcIjp7XCJwZG93XCI6MCxcInJkb3dcIjoyNSxcImZjZG93XCI6MTAsXCJmZG93XCI6e1wic2VsZWN0aW9uXCI6W3tcImNhdGVnb3J5XCI6XCJzdXBwbGllck5hbWVcIixcIm9wdGlvbnNcIjpbXCI1XCJdfV0sXCJyYW5nZVwiOltdfSxcInNjZG93XCI6XCJkYXRlXCIsXCJzb2Rvd1wiOlwiZGVzY1wiLFwidm1kb3dcIjpcInRcIixcInJmYlwiOltdfX1dIn0sInBkZlN0YXRlIjp7InNlYXJjaFRlcm0iOiJzcGV6aWZpa2F0aW9uIiwic2VsZWN0ZWRQYWdlIjoxLCJ1cGxvYWRJRCI6NTQ1LCJtYW51ZmFjdHVyZXJJZCI6IlJpY2h0ZXJtZWllclN1cHBsaWVyIiwiY2hhbm5lbElEIjo0OCwib3B0aW9ucyI6WyJhbWF6b24iXSwiaGFzRGVlcHNlYXJjaCI6dHJ1ZSwiY2hhbm5lbFNldHRpbmdIYXNTaG9wY2FydCI6dHJ1ZSwiY2hhbm5lbFNldHRpbmdIYXNDbGlwcGluZyI6ZmFsc2UsImNoYW5uZWxTZXR0aW5nSGFzQ2xpcHBpbmdEaWFsb2ciOmZhbHNlLCJjaGFubmVsU2V0dGluZ0hhc1Nob3BTZWFyY2giOnRydWUsImNoYW5uZWxTZXR0aW5nU2hvd0V4dGVybmFsU2VhcmNoIjpmYWxzZSwiY2hhbm5lbFNldHRpbmdzQ2FuRG93bmxvYWQiOmZhbHNlLCJwZGZTZWFyY2hFeGFjdE1hdGNoIjpmYWxzZSwidGh1bWJuYWlsUGF0aCI6Imh0dHBzOi8veHNwb3J0YWwtdGVzdC5pdGVrLmRlL3dlYnNlcnZpY2VodWIvRGF0ZWlhYnJ1Zk9NRD90eXBlPUxPJmZpbGVJRD1jMmwwWlhNdlpHVm1ZWFZzZEM5bWFXeGxjeTlwYm1admNHRmphMkZuWlM4eEx6VXZNVFl6TlRVd01URTROaTkwYUhWdFltNWhhV3h6TDJKdFpXTmhkRjh5TURBMUxuQmtaaTVxY0dWbiIsInVwbG9hZERlc2NyaXB0aW9uIjoiQmVzY2hyZWlidW5nIERldXRzY2giLCJkb3dubG9hZEluTmV3VGFiIjpmYWxzZX19" } | Vor 2.0.19 |
articleselectionmode | Nein | Zeigt in der Artikelliste einen Button “Hinzufügen” an der beim drücken das Ausgangsevent “selectedarticle” auslößt. Standardwert ist false. | true | Vor 2.0.19 |
usesubstitutes | Nein | Integration des Substitute-Widgets (alternativartikel) innerhalb der Artikeldetails. Dieses Feature kann nur Verwendet werden, wenn dies am System und für den Kanal aktiviert wurde. Über diesen Parameter kann es bei der Integration deaktiviert werden. Standardwert ist true. | false | Vor 2.0.19 |
usedocuments | Nein | Integration des XS-Documents-Widgets (Bibliothek) innerhalb der Artikeldetails. Dieses Feature kann nur Verwendet werden, wenn dies am System und für den Kanal aktiviert wurde. Über diesen Parameter kann es bei der Integration deaktiviert werden. Standardwert ist true. | false | Vor 2.0.19 |
usebimcad | Nein | Integration des BIM / CAD Widgets innerhalb der Artikeldetails. Dieses Feature kann nur Verwendet werden, wenn dies am System und für den Kanal aktiviert wurde. Über diesen Parameter kann es bei der Integration deaktiviert werden. Standardwert ist true. | false | Vor 2.0.19 |
usemultitree | Nein | Anzeige des Baums als Filter in der Artikelsuche. Dieses Feature kann nur Verwendet werden, wenn dies am System und für den Kanal aktiviert wurde. Des weiteren muss eine Definition des Baumes am Kanal gepflegt worden sein. Über diesen Parameter kann es bei der Integration deaktiviert werden. Standardwert ist true. | false | Vor 2.0.19 |
disableMetaTag | Nein | Das XS-DeepSearch-Widget bindet ein meta-Tag ein. Dieses meta-Tag ist wie folgt definiert: <meta name="viewport" content="width=device-width, initial-scale=1"> Das Tag ist essenziell für die Darstellung des Widgets auf mobilen Endgeräten. Bei der Einbindung des Widgets in Apps kann der Tag zu Problemen führen. Mit diesem Parameter lässt sich steuern, ob der meta-Tag angelegt wird. Der meta-Tag kann dann beispielsweise von der einbinden Webseite zur Verfügung gestellt werden. Zu beachten ist, dass, falls der Tag abgeschaltet wird, für eine korrekte Darstellung auf mobilen Endgeräten keine Gewähr übernommen wird. Standardwert ist false. | true | Vor 2.0.19 |
suppliernamecursive | Nein | Der Parameter bestimmt, ob der Herstellername in der OpenBIB in kursiv angezeigt wird. Bei true würden die Namen kursiv angezeigt werden: Bei false würden die Namen nicht kursiv angezeigt werden:
| false | Vor 2.0.19 |
Ausgang |
| |||
shopsearch | Nein | Dieses Event wird nur ausgegeben, wenn diese Funktion für den entsprechenden Kanal angeschaltet wurde. Das Event beinhaltet folgende zwei Informationen.
| { "searchterm":"test", "manufacturerid":"testid" "callback": { "searchterm":"test", "manufacturerid":"testid", "thumbnailurl": "https://2.0.open-datacheck.de/webservicehub/DateiabrufOMD?type=LO&fileID=c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi90aHVtYm5haWxzLzEwMzE5MjY0LnBkZi5qcGVn" "uploaddescription": "Installation 2021" "widgetstate": "c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi9wYWdlL3RodW1ibmFpbHMvMTAzMTkyNjRfOTA2LnBkZi5qcGVn" } } | Vor 2.0.19 |
shopcart | Nein | Dieses Event wird nur ausgegeben, wenn diese Funktion für den entsprechenden Kanal angeschaltet wurde.
| { "searchterm":"test", "manufacturerid":"testid", "thumbnailurl": "https://2.0.open-datacheck.de/webservicehub/DateiabrufOMD?type=LO&fileID=c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi90aHVtYm5haWxzLzEwMzE5MjY0LnBkZi5qcGVn" "uploaddescription": "Installation 2021" "widgetstate": "c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi9wYWdlL3RodW1ibmFpbHMvMTAzMTkyNjRfOTA2LnBkZi5qcGVn" }
| Vor 2.0.19 |
status | ja | Dieses Event wird immer beim Initialisieren ausgegeben.
|
| Vor 2.0.19 |
dialogstatus | Nein | Dieses Event wird beim öffnen und schließen eines Dialoges ausgegeben. Werte:
|
| Vor 2.0.19 |
pdflink | Nein | Dieses Event wird bei einem Klick auf einen externen Link in einem PDF Dokument ausgegeben. | Ausgabe des im PDF Dokument angegebene Wert für den externen Link als String | Vor 2.0.19 |
pdflinkextended | Nein | Dieses Event wird zusätzlich zum Event “pdflink” ausgelöst und beinhaltet ein callback-Attribut, das für den Rücksprung ins Widget verwendet werden kann. Die Attribute in des Callback-Events sind:
| Beispielausgabe des Events: { link: "article://502151000" callback: { { "searchterm":"test", "manufacturerid":"testid" "thumbnailurl": "https://2.0.open-datacheck.de/webservicehub/DateiabrufOMD?type=LO&fileID=c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi90aHVtYm5haWxzLzEwMzE5MjY0LnBkZi5qcGVn" "uploaddescription": "Installation 2021" "widgetstate": "c2l0ZXMvZGVmYXVsdC9maWxlcy9pbmZvcGFja2FnZS8yLzEzMDEvMTYzNTE3MjczMi9wYWdlL3RodW1ibmFpbHMvMTAzMTkyNjRfOTA2LnBkZi5qcGVn" } } } | Vor 2.0.19 |
selectedarticle | Nein | Dieses Event wird nur ausgegeben, wenn der Eingangsparameter “articleselectionmode” auf “true” gesetzt ist. Dann wird beim klicken auf den Button “Hinzufügen” in der Artikelliste das Event ausgelöst. Die Attribute des Events:
| Beispielausgabe: { "productInstanceId": "Broetje§|§818575-623452§|§1682326405000", "productInstanceIdBase64": "QnJvZXRqZcKnfMKnODE4NTc1LTYyMzQ1MsKnfMKnMTY4MjMyNjQwNTAwMA", "productId": "Broetje§|§818575-623452", "productIdBase64": "QnJvZXRqZcKnfMKnODE4NTc1LTYyMzQ1Mg", "supplierId": "Broetje", "supplierPid": "818575-623452" } | Vor 2.0.19 |
Eingangsevents |
| |||
closeAlldialogs |
| Dieses Event kann an das Widget emittet werden. Das Widget fängt das Event und schließt daraufhin alle zu Zeit geöffneten Dialogfenster. | Beispielaufruf: document.querySelector("xs-deepsearch").dispatchEvent(new Event("closeAllDialogs")) | Vor 2.0.19 |
Beispielparameter
{ "channelid" : [2,1], "externalsearch" : false, "usebaudocs" : false, "removeroundbracketsinsuppliername" : true, "removesquarebracketsinsuppliername" : true, "style":{ "primarycolor": "#616161", "secondarycolor": "#D3D3D3" }, "pdfviewer":{ "position":{ "top": "150px", "right": "20px", "bottom": "50px", "left": "20px" } } }
Beispielintegration
Folgendes Codesnippet in den HTML DOM einbetten.
Widget-Loader V1.x.x
<!-- Widget --> <xs-loader accesstoken="[acccesstoken]" refreshtoken="[refreshtoken]" targeturl="https://2.0.open-datacheck.de" widget="xs-deepsearch" widgetmode="true" language="de" parameter="eyJjaGFubmVsaWQiOjIsImV4dGVybmFsc2VhcmNoIjpmYWxzZSwidXNlYmF1ZG9jcyI6ZmFsc2V9"> </xs-loader> <!-- Widget Resourcen --> <script src="https://widget.itek.de/xs-loader/1.0.1/runtime.js" defer></script> <script src="https://widget.itek.de/xs-loader/1.0.1/polyfills.js" defer></script> <script src="https://widget.itek.de/xs-loader/1.0.1/main.js" defer></script>
Widget-Loader V2.x.x
<!-- Widget --> <xs-loader accesstoken="[acccesstoken]" refreshtoken="[refreshtoken]" targeturl="https://2.0.open-datacheck.de" widget="xs-deepsearch" widgetmode="true" language="de" parameter="eyJjaGFubmVsaWQiOjIsImV4dGVybmFsc2VhcmNoIjpmYWxzZSwidXNlYmF1ZG9jcyI6ZmFsc2V9"> </xs-loader> <!-- Widget Resourcen --> <link rel="stylesheet" href="https://widget.itek.de/xs-loader/2.0.0/styles.css"> <noscript><link rel="stylesheet" href="https://widget.itek.de/xs-loader/2.0.0/styles.css"></noscript> <script src="https://widget.itek.de/xs-loader/2.0.0/xs-loader.js" defer></script>
Beispielevent “shopsearch”
Folgendes Codebeispiel wartet auf das Rückgabevent “shopsearch” von der DeepSearch.
<script defer> // Auf ein Event vom Widget "xs-loader" warten. //Wenn das Event "true" ist, kann ein Eventlistener für die DeepSearch registriert werden const loader_element = document.querySelector('xs-loader'); loader_element.addEventListener('loadfinished', (loadEvent) => { console.log("Load finished: " + loadEvent.detail); // Auf ein Event vom Widget warten. const widget_status = document.querySelector('xs-deepsearch'); widget_status.addEventListener('shopsearch', (statusEvent) => { console.log('"shopsearch" emitted: ' + statusEvent.detail) }); }); </script>
Beispielevent “shopcart”
Folgendes Codebeispiel wartet auf das Rückgabevent “shopcart” von der DeepSearch.
<script defer> // Auf ein Event vom Widget "xs-loader" warten. //Wenn das Event "true" ist, kann ein Eventlistener für die DeepSearch registriert werden const loader_element = document.querySelector('xs-loader'); loader_element.addEventListener('loadfinished', (loadEvent) => { console.log("Load finished: " + loadEvent.detail); // Auf ein Event vom Widget warten. const widget_status = document.querySelector('xs-deepsearch'); widget_status.addEventListener('shopcart', (statusEvent) => { console.log('"shopcart" emitted: ' + statusEvent.detail) }); }); </script>
Beispielevent “status”
Folgendes Codebeispiel wartet auf das Rückgabevent “status” von der DeepSearch.
<script defer> // Auf ein Event vom Widget "xs-loader" warten. //Wenn das Event "true" ist, kann ein Eventlistener für die DeepSearch registriert werden const loader_element = document.querySelector('xs-loader'); loader_element.addEventListener('loadfinished', (loadEvent) => { console.log("Load finished: " + loadEvent.detail); // Auf ein Event vom Widget warten. const widget_status = document.querySelector('xs-deepsearch'); widget_status.addEventListener('status', (statusEvent) => { console.log('"status" emitted: ' + statusEvent.detail) }); }); </script>
Beispielcode (PHP)
Widget-Loader V1.x.x
<?php $systemURL = "https://2.0.open-datacheck.de"; // URL der Anlage, von der das Widget eingebunden werden soll $systemUsername = ""; // Benutzer auf der Anlage $systemPassword = ""; // Passwort des Anlagen-Benutzeres $xsloaderVersion = "1.0.1"; // Version des XS-Loader Widgets $params = array( 'grant_type' => 'password', 'client_id' => 'article_search_client', 'username'=> $systemUsername, 'password' => $systemPassword, 'scope' => 'customer_portal_view_article_data_30', ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $systemURL . "/oauth2/token"); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $json_deepsearch = json_decode($result, true); curl_close($ch); ?> <html> <head> <title>Widget Integration Test</title> </head> <body> <noscript> DeepSearch funktioniert nur mit aktiviertem Javascript. </noscript> <!-- vor das widget--> <link rel="stylesheet" href="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/styles.css"> <noscript><link rel="stylesheet" href="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/styles.css"></noscript> <script src="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/runtime.js" defer></script> <script src="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/polyfills.js" defer></script> <script src="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/main.js" defer></script> <!-- Widget --> <xs-loader widget="xs-deepsearch" accesstoken="<?php echo $json_deepsearch['access_token'];?>" refreshtoken="<?php echo $json_deepsearch['refresh_token'];?>" targeturl="<?php echo $systemURL ?>" language="de" widgetmode=true ></xs-loader> </body> </html>
Widget-Loader V2.x.x
<?php $systemURL = "https://2.0.open-datacheck.de"; // URL der Anlage, von der das Widget eingebunden werden soll $systemUsername = ""; // Benutzer auf der Anlage $systemPassword = ""; // Passwort des Anlagen-Benutzeres $xsloaderVersion = "2.0.0"; // Version des XS-Loader Widgets $params = array( 'grant_type' => 'password', 'client_id' => 'article_search_client', 'username'=> $systemUsername, 'password' => $systemPassword, 'scope' => 'customer_portal_view_article_data_30', ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $systemURL . "/oauth2/token"); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $json_deepsearch = json_decode($result, true); curl_close($ch); ?> <html> <head> <title>Widget Integration Test</title> </head> <body> <noscript> DeepSearch funktioniert nur mit aktiviertem Javascript. </noscript> <!-- vor das widget--> <link rel="stylesheet" href="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion;?>/styles.css"> <script src="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/xs-loader.js" defer></script> <!-- Widget --> <xs-loader widget="xs-deepsearch" accesstoken="<?php echo $json_deepsearch['access_token'];?>" refreshtoken="<?php echo $json_deepsearch['refresh_token'];?>" targeturl="<?php echo $systemURL ?>" language="de" widgetmode=true ></xs-loader> </body> </html>
Widget-Loader V1.x.x
<?php $systemURL = "https://2.0.open-datacheck.de"; // URL der Anlage, von der das Widget eingebunden werden soll $systemUsername = ""; // Benutzer auf der Anlage $systemPassword = ""; // Passwort des Anlagen-Benutzeres $xsloaderVersion = "1.0.1"; // Version des XS-Loader Widgets $phpDebug = true; // Debugmode für den PHP Teil $phpDisableSSLVerify = true; //BauDocs Parameter $systemManufacturerIdType = "TODO"; // ID-Typ der Anlage im ID-Hub $baudocsClientId = 'TODO'; // Client-Id auf dem Baudocs-System $baudocsClientSecret = "TODO"; // Secret des Clients $baudocsUsername = "TODO"; // Benutzer auf dem Baudocs-System $baudocsPassword = "TODO"; // Passwort des Baudocs-Benutzers $params = array( 'grant_type' => 'password', 'client_id' => 'article_search_client', 'username'=> $systemUsername, 'password' => $systemPassword, 'scope' => 'customer_portal_view_article_data_30', ); try{ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $systemURL . "/oauth2/token"); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if( $phpDisableSSLVerify) { //Disable CURLOPT_SSL_VERIFYHOST and CURLOPT_SSL_VERIFYPEER by curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); } $result = curl_exec($ch); if(curl_exec($ch) === false && $phpDebug) { echo 'Curl-Fehler: ' . curl_error($ch); } $json_deepsearch = json_decode($result, true); }catch (Exception $e) { if( $phpDebug) { echo 'Exception abgefangen: ', $e->getMessage(), "\n"; } } curl_close($ch); $params = array( 'grant_type' => 'password', 'client_id' => $baudocsClientId, 'client_secret' => $baudocsClientSecret, 'username'=> $baudocsUsername, 'password' => $baudocsPassword, 'scope' => 'consumer', ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://plattform.baudocs.de/backend/oauth/token"); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $json_baudocs = json_decode($result, true); $parameters = new stdClass(); $parameters->usebaudocs = true; $parameters->baudocsaccesstoken = $json_baudocs['access_token']; $parameters->baudocsrefreshtoken = $json_baudocs['refresh_token']; $parameters->manufactureridtype = $systemManufacturerIdType; ?> <html> <head> <title>Widget Integration Test</title> </head> <body> <noscript> DeepSearch funktioniert nur mit aktiviertem Javascript. </noscript> <!-- Widgetcontainer an die Stelle kopieren, wo das Widget angezeugt werden soll --> <div id="widget-container" class="widget-container" > <!-- vor das widget--> <noscript>Deepsearch funktioniert nur mit aktiviertem Javascript.</noscript> <link rel="stylesheet" href="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/styles.css"> <noscript><link rel="stylesheet" href="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/styles.css"></noscript> <script src="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/runtime.js" defer></script> <script src="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/polyfills.js" defer></script> <script src="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/main.js" defer></script> <!-- Widget --> <xs-loader widget="xs-deepsearch" accesstoken="<?php echo $json_deepsearch['access_token'];?>" refreshtoken="<?php echo $json_deepsearch['refresh_token'];?>" targeturl="<?php echo $systemURL ?>" language="de" widgetmode=true parameter="<?php base64_encode(json_encode((array)$parameters)) ?>"></xs-loader> </div> </body> </html>
Widget-Loader V2.x.x
<?php $systemURL = "https://2.0.open-datacheck.de"; // URL der Anlage, von der das Widget eingebunden werden soll $systemUsername = ""; // Benutzer auf der Anlage $systemPassword = ""; // Passwort des Anlagen-Benutzeres $xsloaderVersion = "2.0.1"; // Version des XS-Loader Widgets $phpDebug = true; // Debugmode für den PHP Teil $phpDisableSSLVerify = true; //BauDocs Parameter $systemManufacturerIdType = "TODO"; // ID-Typ der Anlage im ID-Hub $baudocsClientId = 'TODO'; // Client-Id auf dem Baudocs-System $baudocsClientSecret = "TODO"; // Secret des Clients $baudocsUsername = "TODO"; // Benutzer auf dem Baudocs-System $baudocsPassword = "TODO"; // Passwort des Baudocs-Benutzers $params = array( 'grant_type' => 'password', 'client_id' => 'article_search_client', 'username'=> $systemUsername, 'password' => $systemPassword, 'scope' => 'customer_portal_view_article_data_30', ); try{ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $systemURL . "/oauth2/token"); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if( $phpDisableSSLVerify) { //Disable CURLOPT_SSL_VERIFYHOST and CURLOPT_SSL_VERIFYPEER by curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); } $result = curl_exec($ch); if(curl_exec($ch) === false && $phpDebug) { echo 'Curl-Fehler: ' . curl_error($ch); } $json_deepsearch = json_decode($result, true); }catch (Exception $e) { if( $phpDebug) { echo 'Exception abgefangen: ', $e->getMessage(), "\n"; } } curl_close($ch); $params = array( 'grant_type' => 'password', 'client_id' => $baudocsClientId, 'client_secret' => $baudocsClientSecret, 'username'=> $baudocsUsername, 'password' => $baudocsPassword, 'scope' => 'consumer', ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://plattform.baudocs.de/backend/oauth/token"); curl_setopt($ch, CURLOPT_POST, TRUE); curl_setopt($ch, CURLOPT_POSTFIELDS, $params); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); $json_baudocs = json_decode($result, true); $parameters = new stdClass(); $parameters->usebaudocs = true; $parameters->baudocsaccesstoken = $json_baudocs['access_token']; $parameters->baudocsrefreshtoken = $json_baudocs['refresh_token']; $parameters->manufactureridtype = $systemManufacturerIdType; ?> <html> <head> <title>Widget Integration Test</title> </head> <body> <noscript> DeepSearch funktioniert nur mit aktiviertem Javascript. </noscript> <!-- Widgetcontainer an die Stelle kopieren, wo das Widget angezeugt werden soll --> <div id="widget-container" class="widget-container" > <!-- vor das widget--> <noscript>Deepsearch funktioniert nur mit aktiviertem Javascript.</noscript> <link rel="stylesheet" href="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion;?>/styles.css"> <script src="https://widget.itek.de/xs-loader/<?php echo $xsloaderVersion ?>/xs-loader.js" defer></script> <!-- Widget --> <xs-loader widget="xs-deepsearch" accesstoken="<?php echo $json_deepsearch['access_token'];?>" refreshtoken="<?php echo $json_deepsearch['refresh_token'];?>" targeturl="<?php echo $systemURL ?>" language="de" widgetmode=true parameter="<?php base64_encode(json_encode((array)$parameters)) ?>"></xs-loader> </div> </body> </html>
- No labels