Hallo zusammen,
gibt es einen eleganten Weg, um an den Link zu kommen, der einem Bild zugewiesen ist, das in ein Dokument per <we:img> eingefügt ist? Oder muss man das umständlich per SQL machen?
Vielen Dank für eure Hilfe.
Micha
Link bei <we:img>
Re: Link bei <we:img>
Hi Micha,
gib Dir mal die Daten des Links mit $GLOBALS['we_doc']->getElement('DeinFeld') aus, vielleicht findest Du da schon was Du brauchen kannst. Eine separate Datenbankabfrage ist glaube ich nicht notwendig.
Viele Grüße
Timo
gib Dir mal die Daten des Links mit $GLOBALS['we_doc']->getElement('DeinFeld') aus, vielleicht findest Du da schon was Du brauchen kannst. Eine separate Datenbankabfrage ist glaube ich nicht notwendig.
Viele Grüße
Timo
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.
Ehemals im Vorstand des webEdition e.V.
Re: Link bei <we:img>
Vielen Dank für die schnelle Antwort, Timo.
Aber es handelt sich ja nicht um einen Link sondern um ein <we:img> und $GLOBALS['we_doc']->getElement('DeinFeld') liefert mir ja nur die ID des Bildes.
Aber es handelt sich ja nicht um einen Link sondern um ein <we:img> und $GLOBALS['we_doc']->getElement('DeinFeld') liefert mir ja nur die ID des Bildes.
Re: Link bei <we:img>
Meine derzeitige Lösung sieht so aus:
Das eigentliche Problem ist, dass ich bei <we:img> anscheinend nicht das Attribut "itemprop" für das <img>-Tag übergeben kann.
Code: Alles auswählen
<we:ifEditmode>
<we:img name="myImage" xml="true" />
<we:else />
<we:img name="myImage" only="src" to="global" nameto="myImageSrc" />
<?php
$GLOBALS['myImageSrc'] = substr($GLOBALS['myImageSrc'], 0, strpos($GLOBALS['myImageSrc'],'?')); // unfortunately necessary because webEdition adds timestamp as GET parameter to image source
if(path_to_id($GLOBALS['myImageSrc'])) {
$GLOBALS['myImageSrcId'] = path_to_id($GLOBALS['myImageSrc']);
$db = new DB_WE();
$GLOBALS['myImageHref'] = f("SELECT c.Dat FROM tblContent c, tblLink l WHERE l.DID = " . $GLOBALS['myImageSrcId'] . " AND l.Name = 'LinkPath' AND l.CID = c.ID", "Dat", $db);
}
?>
<?php if(strlen($GLOBALS['myImageHref']) > 0) { ?>
<a href="<?php echo str_replace('/index.php','/',$GLOBALS['myImageHref']); ?>"><img itemprop="photo" src="<we:img name="myImage" only="src" />" alt="<we:img name="myImage" only="alt" />" width="<we:img name="myImage" only="width" />" height="<we:img name="myImage" only="height" />" /></a>
<?php } else { ?>
<img itemprop="photo" src="<we:img name="myImage" only="src" />" alt="<we:img name="myImage" only="alt" />" width="<we:img name="myImage" only="width" />" height="<we:img name="myImage" only="height" />" />
<?php } ?>
</we:ifEditmode>
Re: Link bei <we:img>
ah, ok. Dann würde ich evtl. das "imageDocument" mit der Id initialisieren und mal schauen, was da so drin steckt. Da kommst Du sicherlich an die Id des Linkziels (wenn interner Link) und kannst dann mit <we:url id="0815"> oder <?php id_to_path(0815); ?> den Pfad generieren.
Du kannst dem Image-tag jedes atribut für die Ausgabe durchreisen, wenn Du "pass_" davor schreibst
=>
Code: Alles auswählen
$image = new we_imageDocument();
$image->initById($imageId);
Code: Alles auswählen
<we:img name="meinBild" pass_meinattribut="testler" ... />
=>
Code: Alles auswählen
<img meinattribut="testerle"... >
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.
Ehemals im Vorstand des webEdition e.V.
Re: Link bei <we:img>
Vielen Dank für den Tipp mit dem imageDocument. Das kannte ich bisher noch nicht.
"pass_itemprop" hatte ich schon probiert. Aber das funktionierte leider nicht.
"pass_itemprop" hatte ich schon probiert. Aber das funktionierte leider nicht.
Re: Link bei <we:img>
pass_ ist nur dann nötig, wenn es ein gleichlautendes WE-Attribut gibt.
Für we:img müßte man sonst mal schauen warum er hier keine custom-Attribute nimmt - sollte er. Sonst bitte mit der benutzen Version einen Bug-Report stellen.
Selbst mit php sollte nur die allerletzte Not sein.
Für we:img müßte man sonst mal schauen warum er hier keine custom-Attribute nimmt - sollte er. Sonst bitte mit der benutzen Version einen Bug-Report stellen.
Selbst mit php sollte nur die allerletzte Not sein.
webEdition-Kern-Entwickler
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 56 Gäste