Link bei <we:img>

Fragen zum Erstellen von Templates für webEdition.
alaskana
webEdition Partner
webEdition Partner
Beiträge: 105
Registriert: Sa 5. Feb 2005, 08:09
Kontaktdaten:

Link bei <we:img>

Beitragvon alaskana » Di 15. Mär 2016, 15:50

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

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

Re: Link bei <we:img>

Beitragvon blickfang » Di 15. Mär 2016, 16:14

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
webEdition Partner - https://www.blickfang-media.com
Ehemals im Vorstand des webEdition e.V.

alaskana
webEdition Partner
webEdition Partner
Beiträge: 105
Registriert: Sa 5. Feb 2005, 08:09
Kontaktdaten:

Re: Link bei <we:img>

Beitragvon alaskana » Di 15. Mär 2016, 16:55

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.

alaskana
webEdition Partner
webEdition Partner
Beiträge: 105
Registriert: Sa 5. Feb 2005, 08:09
Kontaktdaten:

Re: Link bei <we:img>

Beitragvon alaskana » Di 15. Mär 2016, 17:11

Meine derzeitige Lösung sieht so aus:

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>
Das eigentliche Problem ist, dass ich bei <we:img> anscheinend nicht das Attribut "itemprop" für das <img>-Tag übergeben kann.

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

Re: Link bei <we:img>

Beitragvon blickfang » Di 15. Mär 2016, 18:54

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.

Code: Alles auswählen

$image = new we_imageDocument();
$image->initById($imageId); 
Du kannst dem Image-tag jedes atribut für die Ausgabe durchreisen, wenn Du "pass_" davor schreibst

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.

alaskana
webEdition Partner
webEdition Partner
Beiträge: 105
Registriert: Sa 5. Feb 2005, 08:09
Kontaktdaten:

Re: Link bei <we:img>

Beitragvon alaskana » Di 15. Mär 2016, 19:35

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.

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

Re: Link bei <we:img>

Beitragvon mokraemer » Di 15. Mär 2016, 22:36

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.
webEdition-Kern-Entwickler


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

Wer ist online?

Mitglieder in diesem Forum: Ahrefs [Bot], Google [Bot] und 9 Gäste