Seite 1 von 1

[#431] Modul content_image und webp

Verfasst: Di 16. Jan 2024, 17:55
von lunsen_de
Hallo,

was muss ich tun, damit ich in einem Bildcontainer eine Datei mit der Endung .webp auswählen kann und diese im Editor als auch in der Ausgabe angezeigt werden.
Aktuell macht es den Eindruck, daß nach der Auswahl der webp Datei und speichern Nichts übergeben wir und daher die Ausgae leer ist.

Ich habe das HTML Template get.tpl mal so probiert:

Code: Alles auswählen

<!-- content_image -->

{if 0 lt $label|strlen}
    <label class="con_content_type_label">{$label|escape}</label>
{/if}

{$editor}

{if NULL neq $image}
<picture>
	<source srcset="{$image->src|escape}" type="image/webp">
	<source srcset="{$image->src|escape}" type="image/jpeg"> 
	<img src="{$image->src|escape}">
</picture>
{/if}

<!-- /content_image -->
Es handelt sich um das Standardmodul ais der aktuellen 4.10.1 dev.

Code: Alles auswählen

<?php

/**
 * description: standard image
 *
 * @package    Module
 * @subpackage ContentImage
 * @author     marcus.gnass@4fb.de
 * @copyright  four for business AG <www.4fb.de>
 * @license    https://www.contenido.org/license/LIZENZ.txt
 * @link       https://www.4fb.de
 * @link       https://www.contenido.org
 */

// assert framework initialization
defined('CON_FRAMEWORK') || die('Illegal call: Missing framework initialization - request aborted.');

// get image source from content type IMG with index 1
$imageSource = "CMS_IMG[1]";
// get description as content type IMGDESCR with index 1
$imageDescription = "CMS_IMGDESCR[1]";

// get editor as content type IMGEDITOR with index 1
// skip IMGEDITOR in frontend cause it displays the image too!
if (cRegistry::isBackendEditMode()) {
    $imageEditor = "CMS_IMGEDITOR[1]";
} else {
    $imageEditor = "";
}

// build class containing all data necessary to display image
// therefor the image dimensions have to be determined
if (0 < cString::getStringLength($imageSource)) {
    $clientConfig = cRegistry::getClientConfig(cRegistry::getClientId());
    $filename = str_replace($clientConfig["upl"]["htmlpath"], $clientConfig["upl"]["path"], $imageSource);
    list($imageWidth, $imageHeight) = getimagesize($filename);
    $image = new stdClass();
    $image->src = $imageSource;
    $image->alt = $imageDescription;
    $image->width = $imageWidth;
    $image->height = $imageHeight;
} else {
    $image = NULL;
}

// When in backend edit mode add a label so the author
// knows what to type in the shown field.
if (cRegistry::isBackendEditMode()) {
    $label = mi18n("LABEL_IMAGE");
} else {
    $label = '';
}

// use smarty template to output header text
$tpl = cSmartyFrontend::getInstance();
$tpl->assign('label', $label);
$tpl->assign('editor', $imageEditor);
$tpl->assign('image', $image);
$tpl->display('get.tpl');

?>
Leider bleibt die Ausgabe leer. Ist webp als Format nicht zugelassen?
In der htaccess habe ich webp schon freigegeben (Das Bild hart eingebunden wird angezeigt).

Grüße Lars

Re: Modul content_image und webp

Verfasst: Di 16. Jan 2024, 18:13
von lunsen_de
Hallo,

ich habe den Fehler entdeckt.
Die Datei war im Ordner upload abgelegt: Hier wird der Pfad mit einem / zuviel ausgegeben. Hält man die Maus in der Dateiverwaltung auf z.B. die Vorschau erscheint: https://www.domain.de/cms/upload//01.webp (nach upload sind 2 Slash).

Ich habe die Datei in einen Ordner in Upload gelegt und schon stimmt der Pfad und die webp wird auch angezeigt.
https://www.domain.de/cms/upload/bilder/01.webp

Schein ein kleiner Bug zu sein, dass die Dateien, die direkt in upload liegen im Pfad dann ein Slash zuviel haben.

Grüße Lars

Re: Modul content_image und webp

Verfasst: Mi 17. Jan 2024, 12:16
von Bernhard_4711
In meinem Linux-System /Xubuntu 22.04. LTE) machen zwei Slash nichts aus:

Code: Alles auswählen

bernhard@arbeit-lin-win:~$ cd .//Tmp
bernhard@arbeit-lin-win:~/Tmp$ cd
bernhard@arbeit-lin-win:~$ cd ./Tmp
bernhard@arbeit-lin-win:~/Tmp$ 

Re: Modul content_image und webp

Verfasst: Sa 27. Jan 2024, 12:01
von xmurrix
Hallo zusammen,

den Fehler kann ich auch bestätigen. Dateien, die im Startverzeichnis des Upload-Ordners abgelegt werden, bekommen ein Slash zuviel, wenn sie im content_image-Modul bei der Ausgabe referenziert werden.

Das Ticket dafür im GitHub lautet:
https://github.com/CONTENIDO/CONTENIDO/issues/431

Grüße
Murat