Alt- und Title-Text eine Bildes mit $object->getElement()

Fragen zum Erstellen von Templates für webEdition.
Turbo
Senior Member
Beiträge: 121
Registriert: Mo 10. Nov 2008, 23:31
Kontaktdaten:

Alt- und Title-Text eine Bildes mit $object->getElement()

Beitragvon Turbo » Di 17. Sep 2013, 08:59

Hallo zusammen,

ich habe ein Bild eingebunden und möchte, dass das Bild und dessen Attribute wie z.B. alt oder title auf jeder Unterseite eingebunden wird, wenn dort kein eigenes Bild eingebunden wird. Optimal wüäre natürlich der Alt- und Title-Text aus dem Bildelement, da er ja theoretisch noch an der Stelle verändert werden könnte. Diese Änderung soll natürlich auch auf den Unterseiten zum tragen kommen.

Mit der Bild-ID bzw. dem Bildpfad ist das kein Thema. Das habe ich mit id_to_path(70); regeln können.
Allerdings komme ich nicht an den Alt- bzw. Title-Text des we:img

Mein Ansatz:

1.

Code: Alles auswählen

	
<?php include_once $_SERVER['DOCUMENT_ROOT'].'/webEdition/we/include/we.inc.php';
	include_once $_SERVER['DOCUMENT_ROOT'].'/webEdition/we/include/we_classes/we_webEditionDocument.inc.php';

	$obj = new we_webEditionDocument();
	$obj->initByID(70); //ID des Bildes (JPG)
	if($config["grid"]["56"]["inheritImg"] == "0" OR $config["grid"]["inheritImgID"] === $GLOBALS['we_doc']->ID) { //Abfrage für Einbindung wenn ein Bild eingepflegt wurde ?>
		<we:ifNotEmpty match="$singImgName" type="img"><we:img name="$singImgName" thumbnail="$sIThumbSize" /></we:ifNotEmpty>
	<?php } else {
		//Bild wird vererbet, wenn kein eigenes eingepflegt wird auf den anderen Seiten
		$func56ImgBdid = $obj56->getElement($singImgName,'bdid');
		if(!empty($func56ImgBdid)) 
		{
			$func56ImgPath = id_to_path($func56ImgBdid);
                        //Mein Ansatz über die ID des Bildes an den Alt-Text zu kommen - Funktioniert so aber auch nicht!?
                       // BESSER wäre natürlich den des Bildelementes zu nehemen, da er ja an der Stelle verändert worden sein könnte!
			ob_start(); ?>
			<we:img id="$func56ImgBdid" name="test" only="alt" />
			<?php $func56ImgAlt = ' alt="'.trim(ob_get_contents()).'"';
			ob_end_clean();
			ob_start(); ?>
			<we:img id="$func56ImgBdid" name="$singImgName" only="title" />
			<?php $func56ImgTitle = trim(ob_get_contents());
			ob_end_clean();
			if(empty($func56ImgTitle)) $func56ImgTitle = ''; else $func56ImgTitle = ' title="'.$func56ImgTitle.'"';
			echo '<img src="'.$func56ImgPath.'"'.$func56ImgAlt.''.$func56ImgTitle.'>';
		}
	} ?>
Vielen Dank schonmal für eure Tipps im Voraus :)

Benutzeravatar
Carrear
webEdition Partner
webEdition Partner
Beiträge: 646
Registriert: Do 17. Jan 2013, 03:02
Wohnort: Hannover
Kontaktdaten:

Re: Alt- und Title-Text eine Bildes mit $object->getElement(

Beitragvon Carrear » Di 17. Sep 2013, 13:28

Du holst dir ja die ID des Bildes in eine Variable, dann kannst du die Metadaten ganz einfach ausgeben, bzw. in eine Variable packen und manipulieren wie du willst:

Code: Alles auswählen

					
$img = new we_imageDocument();
$img->initByID($titelbildid);
$meta_title = $img->getElement('Title');
$meta_description = $img->getElement('Description');

Turbo
Senior Member
Beiträge: 121
Registriert: Mo 10. Nov 2008, 23:31
Kontaktdaten:

Re: Alt- und Title-Text eine Bildes mit $object->getElement(

Beitragvon Turbo » Di 17. Sep 2013, 16:04

Das klappt auch soweit ganz gut. Es geht mir aber um Daten wie Alt-Text bzw. Title-Text des Bildelementes aus einem anderen Dokument. Das geht damit leider nicht.

Hier nochmal die Problematik in Kurzform:

Code: Alles auswählen

//46 ist die ID des Dokumentes mit dem gewünschten Bildelement we:img
$obj->initByID(46);
//"bildname" ist der Name des we:img-Tags auf der Seite mit der ID 46
//$funcImgBdid liefert mir die ID des Bildes
$funcImgBdid = $obj->getElement(bildname,'bdid');
//Liefert mir den gewünschten Bildpfad des eingebundenen Bildes von Seite mit ID 46
$bildpfad = id_to_path($funcImgBdid);

//Hier möchte ich noch gerne den Alt- bzw. Titletext des Bildelementes haben (nicht die Metadaten)
???

ThomasGoebe

Re: Alt- und Title-Text eine Bildes mit $object->getElement(

Beitragvon ThomasGoebe » Di 17. Sep 2013, 21:51

Hallo turbo,

hier ein ganz anderer Ansatz:

Code: Alles auswählen

<we:listview type="document" id="46" rows="1">
<we:repeat>
Alt: <we:field name="bildname" type="img" only="alt" /><br>
Title: <we:field name="bildname" type="img" only="title" /><br>
Pfad <we:field name="bildname" type="img" only="src /><br>
</we:repeat>
</we:listview>
Hab es nicht getestet, aber es wäre sicher deutlich updatesicherer als eine php Funktion. (es kann sein, dass id=.. in der Dokumentenlistview nicht direkt klappt, sondern den Umweg über eine condition braucht).

Turbo
Senior Member
Beiträge: 121
Registriert: Mo 10. Nov 2008, 23:31
Kontaktdaten:

Re: Alt- und Title-Text eine Bildes mit $object->getElement(

Beitragvon Turbo » Do 19. Sep 2013, 08:37

Hallo Thomas,

die Idee ist super. Dabei habe ich schon so viele Bildergalerien mit der Listview gemacht. :) Ich werde es genau so umsetzen.

Vielen Dank für den guten Tipp.

Gruß
Turbo


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

Wer ist online?

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