Zum Inhalt springen

img ohne alt-Attribut?

Erstellt am 8. April 2009 · 3 Antworten · letzte Antwort am 20. April 2009

Tags: Frage

j-spot ·

Hat schon mal jem. versucht ein Bild ohne alt-Attribut auszugeben?

Um die Frage "Warum das?" vorweg zu beantworten: da es das XML für die http://www.monoslideshow.com/monoslideshow_manual.pdf nicht zulässt bzw. zu Fehlern führt.

Für o.a. Monoslideshow generiere ich ein eigenen Pagetype, der gewünschte Bilder übergeben soll. Die Bilder im XML werden mit:

10.stdWrap.dataWrap = <img src="|" title="{field:header}" />

ausgegeben. Egal ob ich den HTMLparser anschmeiße oder einen anderen doctype setze, sobald ein img erzeugt wird, gibt es auch ein leeres alt-Attribut!

Hat jem. eine Idee, wie man das alt-Attribut entfernt?
Wie gesagt, HTMLparser.noAttrib = img etc. führen nicht zum Erfolg!

Hier das ganze TS:

xmlBilder = PAGE
xmlBilder {
	typeNum = 2
	config.disableAllHeaderCode = 1
	
	10 = TEMPLATE
	10 {
		template = FILE
		template.file = fileadmin/flash/monoslideshow_template.xml
	}	

	10.marks {
		IMAGES = COA
		IMAGES {
			10 = CONTENT
			10 {
				table = tt_content
				select.where = colPos = 1
				select.orderBy = sorting
		
				renderObj = COA
				renderObj {
					10 = IMG_RESOURCE
					10.file.import = uploads/pics/
					10.file.import.field = image
					10.file.import.listNum = 0
					10.file.maxW.field = imagewidth
					10.file.maxW.ifEmpty = 970
					10.file.maxH.field = imageheight
					10.file.maxH.ifEmpty = 220
					10.stdWrap.dataWrap = <img src="|" title="{field:header}" />
				}
			}
		}
	}
	
}

Es handelt sich um ein Typo3 4.2.6 mit css_styled_content.

Gruss Jacob

j-spot ·

PHP_SCRIPT mit $content oder USER mit userFunc wollen auch nicht, dass ein IMG-Tag ohne alt-Attribut ausgegeben wird!

Hat jem. noch eine andere Idee, wie man Einfluß darauf nehmen kann?

j-spot ·

Gut, mit so viel Reaktion hab ich auch nicht gerechnet!

Der Super-Holzhammeransatz ist nun dieser (falls es jem. interessiert):

<?php
	$replace_pairs = array(
		"alt=\"\"" => "",
	);
	$file = file_get_contents("index.php?id=" . addslashes($_GET["id"]) . "&type=2");
	echo strtr($file,$replace_pairs);
?>

Na ja, muss man wohl mit leben ... schnauf 🙁

j-spot ·

Da mit o.a. Variante eh eine Ausgabe über eine PHP Datei stattfindet, kann ich es auch gleich vollständig darüber machen (Abfrage über Pear:😃B).

Hier also die vollständige Lösung (auch wenn es mit einer Ausgabe über TS nicht möglich scheint, setzt ich das Thread mal auf "gelöst"):

<?php

	require_once("DB.php");
	define ("PATH", dirname(__FILE__));
	
	$dsn = array(
		"phptype"  => "mysql",
		"username" => "username",
		"password" => "password",
		"hostspec" => "localhost",
		"database" => "database",
	);
	
	$options = array(
		"debug"       => 2,
		"portability" => DB_PORTABILITY_ALL,
	);
	
	$db =& DB::connect($dsn, $options);
	if (PEAR::isError($db)) {
		die($db->getMessage());
	}
	
	$query = "SELECT image,header FROM `tt_content` WHERE pid = '" . addslashes($_GET["id"]) . "' \n"
			."AND hidden = 0 \n"
			."AND deleted = 0 \n"
			."AND CType = \"image\" \n"
			."AND colPos = 1 \n"
			;

	$res =& $db->query($query);
	if (PEAR::isError($res)) {
		die($res->getMessage());
	}
	
	while ($res->fetchInto($row, DB_FETCHMODE_ASSOC)) {
		$images .= "<img src=\"uploads/pics/" . $row["image"] . "\" title=\"" . $row["header"] . "\"/>" . chr(13);
	}
	
	$xml = implode("", file(PATH . "/monoslideshow_template.xml"));
	$xml = strtr($xml, array(
		"###IMAGES###" => $images,
	));
	
	header("Content-Type: text/xml");
	echo $xml;
	
?>

Hier noch das Template (monoslideshow_template.xml):

<?xml version="1.0" encoding="utf-8"?>

<!--
	Monoslideshow 1.32 configuration file
	Please visit http://www.monoslideshow.com for more info
-->

<slideshow>
	
	<preferences
		kenBurnsMode = "random"
		kenBurnsTime = "8"
		
		backgroundColor = "FFFFFF"
		showLoadingIcon = "true"
		showControls = "false"
		showImageInfo = "ifAvailable"
		randomizeImages = "true"
		loadingIconAlign = "topRight"
		loadingIconColor = "ffffff"
		loadingIconBackgroundColor = "CBC414"
		loadingIconAlpha = "50"
		loadingIconSize = "15"
		
		imageInfoDisplayNoDescription = ""
		imageInfoDisplayNoTitle = ""
		
		imageInfoTitleSize = "10"
		imageInfoDescriptionMargin = "5"
		imageInfoTextAlign = "right"
		imageInfoColor="ffffff" 
		imageInfoAlpha="0" 
		imageInfoRoundedCorners="6" 
		imageInfoAlign="bottomLeft"
		imageInfoTitleContainsNumber = "false"
		
	/>
	
	
	<album>
		###IMAGES###
	</album>
	
</slideshow>