Problem mit Fotogalerie

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Problem mit Fotogalerie

Beitrag von Lord_Femto »

hallo

beim programmieren einer bildergalerie ist ein problem aufgetreten.
die bilder sind in einem ordner gespeichert. die dateinamen werden aus einer datenbank gelesen. es erscheint eine thumbs bilder übersicht. wenn man nun auf die 150 x 133 großen bilder draufklickt, so wird mittels javascript function window.open() das bild in einem fenster groß dargestellt. das problem ist nun, dass die bilder eine unterschiedliche größe haben. bei javascript muss ich aber eine feste größe angeben. das daraus entstehende bild wird nun aber verzerrt. bitte um aufklärung die größenverhältnisse dynamisch wiederzugeben. hier ist der quellcode:

fotogalerie.php:

Code: Alles auswählen

if ( isset($_GET['picture']) && !empty($picture_categorie) )
{
	$template->set_filenames(array(
		'body' => 'picture_body.tpl')
	);

	$template->assign_vars(array(

	'SITENAME' => $picture_categorie,
	'PAGE_TITLE' => $_GET['picture_title'],
	'I_IMAGE' => '<img src="images/' . rawurlencode($picture_categorie) . '/' . rawurlencode($_GET['picture']) . '" alt="' . $_GET['picture_title'] . '" title="' . $_GET['picture_title'] . '" width="800" height="600"' )

	);
	
	$template->pparse('body');

	exit;
}

$page_title = 'Fotogallerie';
include($boot_root_path . 'includes/page_header.'.$phpEx);
include($boot_root_path . 'includes/page_left.'.$phpEx);

if( !empty($picture_categorie) && !empty($_GET['picture_categorie_id']) )
{
	$template->set_filenames(array(
		'body' => 'fotogalerie_body.tpl')
	);
	
	$sql = "SELECT picture_content_id, picture_content_link, picture_content_title FROM " . PICTURE_CONTENT_TABLE . " WHERE picture_categorie_id='" . $_GET['picture_categorie_id'] . "'";
	if ( !($result = $db->sql_query($sql)) )
		{
			message_die(GENERAL_ERROR, 'Could not obtain matched posts list', '', __LINE__, __FILE__, $sql);
		}
		
			while( $row = $db->sql_fetchrow($result) )
			{
				$template->assign_block_vars('picture_content', array(
					'I_IMAGE' => '<img src="images/' . rawurlencode($picture_categorie) . '/thumbs/' . rawurlencode($row['picture_content_link']) . '" alt="' . $row['picture_content_title'] . '" title="' . $row['picture_content_title'] . '" width="150" height="113" border="0" />',
					
					'L_IMAGE' => $row['picture_content_title'],
					
					'U_IMAGE' => 'index.' . $phpEx . '?show=picture_gallery&picture_categorie=' . $picture_categorie . '&picture=' . rawurlencode($row['picture_content_link']) . '&picture_title=' . $row['picture_content_title'] )
				);
			}
			
	$template->pparse('body');
}

fotogalerie_body.tpl

Code: Alles auswählen

<script type="text/javascript">
	<!--
		function MapWindow() {
		window.open('', 'image', 'width=800, height=600, resizable=no, scrollbars=no, toolbar=no, status=no, menubar=no');
	}
	-->
	</script>

	<table width="100%" cellspacing="0" cellpadding="0" border="0">
		<tr>
			<!-- BEGIN picture_content -->
			<td><a href="{picture_content.U_IMAGE}" onclick="MapWindow()" target="image" title="{picture_content.L_IMAGE}">{picture_content.I_IMAGE}</a></td>
			<!-- END picture_content -->
		</tr>
	</table>

picture_body.tpl

Code: Alles auswählen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="{S_CONTENT_DIRECTION}">
  <head>
	<title>{SITENAME} :: {PAGE_TITLE}</title>
	<meta http-equiv="Content-Type" content="text/html; charset={S_CONTENT_ENCODING}">
	<meta http-equiv="Content-Style-Type" content="text/css">
  </head>
<body topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0">{I_IMAGE}</body>
</html>
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Re: Problem mit Fotogalerie

Beitrag von Blutgerinsel »

Lord_Femto hat geschrieben:bei javascript muss ich aber eine feste größe angeben. das daraus entstehende bild wird nun aber verzerrt.
SelftHTML hat geschrieben: [.......]
3. (optional) Angaben zum Aussehen des Fensters = Eine Zeichenkette, in der Sie die Größe und die Eigenschaften des Fensters festlegen können. Mehrere Angaben sind durch Kommata zu trennen. Folgende Angaben sind möglich
[......]
width
height
[.....]
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

ok. wenn ich dies jetzt mache, so habe ich erneut einen unerwünschten effekt. ich möchte, dass das neue fenster mit dem bild abschließt und somit muss ich beim javascript feste werte angeben... gibt es noch andere lösungswege.

siehe *hier*
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

[php:getimagesize]
KB:knigge
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

hmmm. damit kann ich nicht viel anfangen. zwar liest er mir das alles schön und gut aus. aber schaue mal bitte meine quellcodeausschnitte an. es kommt ja auf die größe des javascript feldes an. doch es wird ja anders gereglt als einfach nur window.open() (mit target etc. wird das hier gehandhabt.
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Lord_Femto hat geschrieben:doch es wird ja anders gereglt als einfach nur window.open() (mit target etc. wird das hier gehandhabt.
Du musst doch nur die Größe des Bildes auslesen und dann anstatt der momentanen 800x600 in den window.open-Aufruf einfügen. Der Rest drumrum (target, alt, title oder was auch immer) ist völlig egal
KB:knigge
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

hi

entweder habe ich ein grundlegendes verständnisproblem, oder du hast den obigen quellcode falsch interpretiert.

die bilder daten werden aus einer datenbank gezogen und das durchläuft eine schleife. jetzt wird jedem array eine funktion namens function MapWindow() zugewiesen bei der die bildergrößen aber vorher schon definiert werden.

ANMERKUNG: die herausgezogenen Bilder sind unterschiedlich groß.

wie kann ich nun irgendwo mit getimagesize arbeiten?
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

Na und ?

Wo speicherst du Bilder in die DB ? Eher die Bildnamen davon.....

und wenn man diesen Bildnamen aus der DB liest dann könnte man ja eigentlich das Bildchen öffnen und bei getimagesize die Höhen und Breitenangaben entnehmen und dieser sogenannten MapWindow Function anstatt statisch die Angaben dynamisch übergeben......
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

sorry könnt ihr mir vielleicht einen kleinen denkanstoß geben?
soll ich dass dan so in etwa machen??? sorry ich habe gerade eine denkblockade. wäre nett, wenn ihr mir mit einem snippet nen denkanstoß geben könntet.

Code: Alles auswählen

<td><a href="{picture_content.U_IMAGE}" onclick="MapWindow({WIDTH}, {HEIGT})" target="image" title="{picture_content.L_IMAGE}">{picture_content.I_IMAGE}</a></td>
oder wie???? das würde ja dann aber immer noch statisch ausgeben werden...
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Lord_Femto
Mitglied
Beiträge: 701
Registriert: 19.12.2003 15:53
Wohnort: Berlin

Beitrag von Lord_Femto »

könntet ihr mir bitte helfen. bin sehr ratlos.
danke im voraus.
Gruß Lord_Femto
visit - http://www.pandemicbrew.de
Project X
Antworten

Zurück zu „Coding & Technik“