-
Wie lade ich eine externe Datei (Url) mit REDAXO-Mitteln in den Medienpool und übergebe dabei auch noch einen Titel. |
Beta Was this translation helpful? Give feedback.
Answered by
eaCe
Jul 6, 2022
Replies: 2 comments
-
Hier ein Beispiel mit einem einfachen Titel => URL Array: $images = [
'Title 1' => 'https://images.pexels.com/photos/7488465/pexels-photo-7488465.jpeg',
'Title 2' => 'https://images.pexels.com/photos/6441504/pexels-photo-6441504.jpeg'
];
foreach ($images as $title => $url) {
/** Dateiname aus der URL holen */
$baseName = basename($url);
/** Medienpool-Name erstellen */
$fileName = rex_mediapool::filename($baseName, false);
/** check ob die Datei noch nicht existiert */
if (rex_media::get($fileName) === null) {
$mediaPath = rex_path::media($fileName);
/** Bild von URL laden */
$image = rex_socket::factoryUrl($url)->doGet();
/** Bild in den media-Ordner schreiben/hochladen */
$image->writeBodyTo($mediaPath);
/** Hier kann alternativ noch eine Kategorie-ID eingetragen werden */
$mediaData = [
'category_id' => null,
'title' => $title,
'filename' => $fileName,
'file' => [
'name' => $fileName,
'path' => $mediaPath,
],
];
/** Bild dem Medienpool hinzufügen */
rex_media_service::addMedia($mediaData, false);
}
} Alternativ im Loop weiterspringen: foreach ($images as $title => $url) {
/** Dateiname aus der URL holen */
$baseName = basename($url);
/** Medienpool-Name erstellen */
$fileName = rex_mediapool::filename($baseName, false);
/** überspringen wenn Datei schon existiert */
if (rex_media::get($fileName) !== null) {
continue;
}
$mediaPath = rex_path::media($fileName);
/** Bild von URL laden */
$image = rex_socket::factoryUrl($url)->doGet();
/** Bild in den media-Ordner schreiben/hochladen */
$image->writeBodyTo($mediaPath);
/** Hier kann alternativ noch eine Kategorie-ID eingetragen werden */
$mediaData = [
'category_id' => null,
'title' => $title,
'filename' => $fileName,
'file' => [
'name' => $fileName,
'path' => $mediaPath,
],
];
/** Bild dem Medienpool hinzufügen */
rex_media_service::addMedia($mediaData, false);
} Danke an @alxndr-w & @tbaddade FriendsOfREDAXO/tricks#257 |
Beta Was this translation helpful? Give feedback.
0 replies
Answer selected by
skerbis
-
Danke @eaCe |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hier ein Beispiel mit einem einfachen Titel => URL Array: