Bild mit php aktualisieren

Fragen zum Erstellen von Templates für webEdition.
Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Bild mit php aktualisieren

Beitragvon blickfang » Mo 17. Okt 2016, 13:37

Hi,

ich würde gerne ein Bild in webEdition über php aktualisieren. Hat das schon mal jemand gemacht? Das müste mit der Bildklasse doch funktionieren, aber welche Werte müssen dafür gesetzt werden?

Code: Alles auswählen

$imgDoc = new we_imageDocument();
$imgDoc->initByID($id);
$imgDoc->setElement(??, binary??)
$imgDoc->we_save();
$imgDoc->we_publish();
Gruß
Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Bild mit php aktualisieren

Beitragvon WBTMagnum » Mo 17. Okt 2016, 17:14

Hallo Timo,

Wenn du das Bild mit einem gerade hochgeladenen Bild ersetzen willst (z.B. aus einem upload Formular), dann sollte das in etwa so funktionieren (ungetestet):

Code: Alles auswählen

$imgDoc = new we_imageDocument();
$imgDoc->initByID($id);
$imgDoc->setElement('data', $_FILES['file']['tmp_name']);
$imgDoc->insertAtIndex();
$imgDoc->we_save();
HTH,
Sascha

Benutzeravatar
blickfang
webEdition Partner
webEdition Partner
Beiträge: 812
Registriert: Mo 15. Dez 2003, 16:00
Kontaktdaten:

Re: Bild mit php aktualisieren

Beitragvon blickfang » Mo 17. Okt 2016, 17:50

Hi Sascha,

ich habe kein $_FILES, aber eine Bilddatei die ich von einer anderen Quelle einlesen kann. Das attribut "data" zu setzen wäre aber mal einen Versuch wert.
wofür ist ->insertAtIndex()?
Gruß
Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Bild mit php aktualisieren

Beitragvon WBTMagnum » Mo 17. Okt 2016, 20:46

biwaMedia hat geschrieben:ich habe kein $_FILES, aber eine Bilddatei die ich von einer anderen Quelle einlesen kann. Das Attribut "data" zu setzen wäre aber mal einen Versuch wert.
Du musst, wenn ich den Code in den Funktionen richtig interpretiere, eh nur einen Pfad angeben.

Ich habe mal etwas in der Funktion we_import_site::importFile() gestöbert. Ev. könnte es so klappen:

Code: Alles auswählen

$imgDoc = new we_imageDocument();
$imgDoc->initByID($id);

if(!is_dir($path) && filesize($path)){
    // $data = we_base_file::load($path);
    $filesize = !is_dir($path) && ($filesize = filesize($path)) ? $filesize : 0;

    $foo = $imgDoc->getimagesize($path);
    $imgDoc->setElement('width', $foo[0], 'attrib');
    $imgDoc->setElement('height', $foo[1], 'attrib');
    $imgDoc->setElement('origwidth', $foo[0], 'attrib');
    $imgDoc->setElement('origheight', $foo[1], 'attrib');
    $imgDoc->setElement('filesize', $filesize, 'attrib');
    $imgDoc->setElement('data', $path, 'image');
    $imgDoc->importMetaData();
    $imgDoc->we_save();
}
Vielleicht klappt das so ja. Probier einfach mal.

biwaMedia hat geschrieben:wofür ist ->insertAtIndex()?
Das wird zumindest beim Anlegen von binaries benötigt und sorgt dafür, dass die Datei im Dokumentbaum aufscheint. Kann gut sein, dass du das hier nicht brauchst, da du ja ein bestehendes Dokument aktualisieren willst.


Liebe Grüße,
Sascha

mokraemer
Senior Member
Beiträge: 3619
Registriert: So 8. Aug 2010, 01:23
Wohnort: Mainz

Re: Bild mit php aktualisieren

Beitragvon mokraemer » Di 18. Okt 2016, 11:45

... beschwert Euch nicht, wenn nach einem Update das nicht mehr geht...
Wenn ihr immer interne Funktionen aufruft statt einen sinnvollen FR zu stellen wo eine API bereitgestellt wird oder ihr sogar helft die API zu schreiben. Wenn ihr immer direkt den Inhalt von internen Funktionen kopiert, dann werden wir erstens die API nicht bekommen und zweitens dupliziert ihr Kode, profitiert ggfs. nicht von Fixes und falls sich Parameter ändern knallt es bei Euch.
webEdition-Kern-Entwickler

WBTMagnum
webEdition Partner
webEdition Partner
Beiträge: 1825
Registriert: Di 7. Mär 2006, 16:50
Wohnort: Wien
Kontaktdaten:

Re: Bild mit php aktualisieren

Beitragvon WBTMagnum » Di 18. Okt 2016, 12:19

Hallo Marc,

Ist schon klar, dass der Einsatz von PHP auf eigene Gefahr erfolgt. Manchmal führt da halt kein Weg daran vorbei.

Das mit dem FR ist natürlich eine Idee. Hier wäre wohl eine Funktion replaceImage() oder ähnliches am sinnvollsten. Ich verfalle da leider oft dem Gedanken, dass so etwas ja schon existieren muss und lande dann erst recht wieder tief im Code und bei einer schnellen "zusammengestöpselten" Lösung.

Frage bzgl. API: Gibt es eigentlich irgendwo eine gute Übersicht der API online? Ich habe jetzt nur die Klassenstruktur gefunden. Mir schwebt da schon länger vor mehr mit PHPDoc zu arbeiten um so immer eine gute und aktuelle API Übersicht zu haben. Ich versuche daher auch immer wieder Funktionen und Klassen im Code zu dokumentieren.

Liebe Grüße,
Sascha


Zurück zu „webEdition Templates erstellen (we:Tags)“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 26 Gäste