[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Galerie mit Blätter-Navigation ohne Thumbs - [gelöst] - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
Surkan
Beiträge: 102
Registriert: 18. Apr 2009, 15:28
Wohnort: Jena

Galerie mit Blätter-Navigation ohne Thumbs - [gelöst]

24. Mai 2009, 21:48

So ich hab ein Problem und werde fast verrückt da ich das irgendwo schon gefunden hatte - nur jetzt musste ich mein Redaxo neu aufspielen (hab was geschrottet) und da war natürlich das Modul wieder weg... Jetzt hab ich den ganzen Tag schon in der Modulliste und im Forum gesucht - aber entweder bin ich Blind oder völlig durch...

Ich versuch das mal sogut wie es geht zu beschreiben was ich suche:

Ich suche eine Galerie. Und zwar eine wo ich nur eine Kategorie des Mediapools auswählen muss. Dann kann / konnte ich noch angeben, wieviele Bilder je Seite angezeigt werden sollen. Die Bilder wurden dann in Orginalgröße angezeigt (optional konnte man auch noch angeben wenn sie verkleinert dargestellt werden sollten). Das Bild wurde als Link ausgegeben (direkt Link auf die Datei). Es wird als nicht erst nur ein Thumbnail erzeugt, sondern das Bild direkt eingebunden,
Ob die Bildbeschreibung (Titel und Beschreibung) mitangezeigt werden, kann ich nicht sagen, da ich bei den Testbildern nichts angegeben hatte. (Jedenfalls sollte neben den Bild an sich auch Titel und so mit angezeigt werden.)

Von der Funktion her ist es quasi wie das Modul "Kategorie Medienpool bereitstellen" (nur das das Bild zu sehen war und nicht nur das Icon) und der "Blätter"-Funktion der "Multilist".

Ich hoffe ich habs sauber genug beschrieben. Vielleicht fällt jemanden ein wo es das gab.

Danke schonmal
Zuletzt geändert von Surkan am 4. Jun 2009, 14:00, insgesamt 1-mal geändert.

Benutzeravatar
Richard.Laing
Beiträge: 2105
Registriert: 28. Aug 2005, 00:55
Wohnort: Brühl / Rheinland
Kontaktdaten: Website

25. Mai 2009, 19:44

hi
denke mal das war ein addon und darin ein modul.
hört sich nach der home galery an

http://www.redaxo.de/180-0-addon-detail ... ddon_id=80

denke mal...
gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

Surkan
Beiträge: 102
Registriert: 18. Apr 2009, 15:28
Wohnort: Jena

25. Mai 2009, 19:55

mh - leider nicht

ich bin ganz sicher, dass es ein modul war. aber wie gesagt, ich brauche eigentlich nur eine blätterfunktion - siehe auch hier: http://forum.redaxo.de/ftopic12037.html?

Surkan
Beiträge: 102
Registriert: 18. Apr 2009, 15:28
Wohnort: Jena

26. Mai 2009, 15:37

so...
nach endlosen Stunden der puren Verzweiflung denke ich das ich einen Weg gefunden habe. Nur leider ist es NUR eine Idee - bei der Umsetzung könnte ich mal die Hilfe von jemandem gebrauchen, der mir in einem Modul eine Kleinigkeit umbaut.

Ich habe nun die "hassoGalerie" http://www.redaxo.de/165-0-moduldetails ... odule_id=7 eingesetzt. Bei dieser Galerie werden zuerst die Thumbs angezeigt und nach dem Anklicken komm ich zur "einzel Ansicht".

In dem Modul gibt es zwei Funktionen:

Code: Alles auswählen

hassoShowPic
und

Code: Alles auswählen

hassoPicList
Beim Seitenaufruf wird zuerst die PicList angezeigt. Und genau da liegt der Hase im Pfeffer!

Ich hab nun versucht, den Aufruf der PicList zu umgehen in dem ich direkt die Funktion hassoShowPic aufrufe.

Am Ende des Moduls steht folgende if-Schleife:

Code: Alles auswählen

// show the thumbs or show the picture
if ( $hassoPic != "" ) {
	// single picture
	hassoShowPic();
} else {
	// thumbnail overview
	hassoPicList();
}
Mein Versuch war es, beide male die Funktion hassoShowPic aufzurufen. Taja ihr könnt euch sicher denken was kam --> Fehler!!!

Kann mir jemand sagen, wie ich den Aufruf der PicList umgehen und direkt zu ShowPic komme?

Danke schonmal

Benutzeravatar
Richard.Laing
Beiträge: 2105
Registriert: 28. Aug 2005, 00:55
Wohnort: Brühl / Rheinland
Kontaktdaten: Website

26. Mai 2009, 15:43

hi bin mir nicht sicher aber versuch mal bitte:

Code: Alles auswählen

// show the thumbs or show the picture
if ( $hassoPic == "" ) {
   // single picture
   hassoShowPic();
} else {
   // thumbnail overview
   hassoPicList();
} 
ich kenne die galerie nicht, aber so sollte es umgekehrt dargestellt werden.

gruß richy
REXvideo Videotutorials für Redaxo www.REXvideo.de
Webseite www.on-laing.de smokezig.de www.smokezig.de

Surkan
Beiträge: 102
Registriert: 18. Apr 2009, 15:28
Wohnort: Jena

26. Mai 2009, 15:45

ne leider nicht:
Fatal error: Call to a member function getId() on a non-object

Tizian
Beiträge: 151
Registriert: 4. Apr 2008, 11:58
Wohnort: Bremen
Kontaktdaten: Website

sowenig ich von java verstehe ...

27. Mai 2009, 10:17

ist hier die if-else funktion nicht überflüssig, wenn du nur

Code: Alles auswählen

hassoShowPic(); 
haben willst?
schöne grüße
tizian
********************************
ansichtsache TM

Surkan
Beiträge: 102
Registriert: 18. Apr 2009, 15:28
Wohnort: Jena

27. Mai 2009, 10:28

das dachte ich ja auch, aber dann kommt
Fatal error: Call to a member function getId() on a non-object in /www/.../redaxo/include/classes/class.rex_article.inc.php(271) : eval()'d code on line 140
taja ich bin bald am verzweifeln. der code ist eigentlich gar nicht so groß. das kann - im meinen Augen doch nicht so schwer sein...

hier noch mal der link zum Modul: http://www.redaxo.de/165-0-moduldetails ... odule_id=7

ich blicks einfach nicht...

Surkan
Beiträge: 102
Registriert: 18. Apr 2009, 15:28
Wohnort: Jena

29. Mai 2009, 07:38

Nach lesen vieler PHP Anleitungen bin ich NUR ein ganz wenig schlauer. PHP ist ja doch etwas komplexer als zuerst gedacht.

Naja jedenfalls werde ich mein Ziel auf eigenen Füßen wohl erst im Winter erreichen. Deswegen wollte ich nochmal fragen, ob jemand hier eine Idee hat.

Inzwischen weis ich, dass eine Blätterfunktion deutlich aufwendiger ist, als ich dachte. Deswegen hab ich mich im Augenblick nur darauf eingeschossen, in der hassoGalerie die Thumbliste zu überspringen.

Um euch das Klicken zu ersparen, poste ich mal den Code der hassoGalerie (ich kann ihn ja später wieder raus editieren)

Wäre echt dankbar wenn sich das Problem in Laufauflösen würde.

Danke schonmal für die Hilfe

Ausgabecode:

Code: Alles auswählen

<?php
///////////////////////////////////////////
// hassoGallery-Module
// for Redaxo 3
//
// writen by Carsten Biebricher
// date: 23.07.2005
///////////////////////////////////////////
//
// required Redaxo3 AddOn: ImageResize
//
/////
//
// limitations: the gallery-root has to be a folder 
//              in the mediapool root
//
/////
// changes:	- solved problems with 'Call to undefined function'
//			- true/false is not a boolean value ;)
//			- picture-title with spaces !! thanks to Alex
//			- prev/next links in the single-picture view
//			- if thumbs in the start-category; show them
//			- reduce global vars
////////////////////////////////////////////



////////////////////////////////////////////
// global module vars
////////////////////////////////////////////

global $hassoPic;
global $hassoCat;
global $filepath;
$galleryId = REX_VALUE[1];
// REX_VALUE[2] = thumbsize
// REX_VALUE[3] = max picture size (single view)
// REX_VALUE[4] = text of the prev-link
// REX_VALUE[5] = text of the next-link
$aktuelleId = $this->getValue('article_id'); 
$filepath = "./files/";  // path to the pictures

if (!$hassoCat) { $hassoCat = $galleryId; };

////////////////////////////////////////////
// down here are the functions
////////////////////////////////////////////

function hassoPrintMediaCats( $cat = null) {
	$selectCats = null;
	if ( is_int( $cat)) {
		$selectCats = array( OOMediaCategory::getCategoryById( $cat));
	} else if ( OOMediaCategory::isValid( $cat)) {
		$selectCats = array( $cat);
	} else {
		$selectCats = OOMediaCategory::getRootCategories();
	}
	echo "<div id=\"hassoNav\">\n";
	echo "\n<ul>\n";

	foreach ( $selectCats as $selectCat) {
		add_cat_option( $selectCat);
	}
	
	echo "</ul>\n</div>\n";
}


function add_cat_option( &$cat, $groupName = '') {
	if( empty( $cat)) {
		echo "\nCAT is empty!\n";
		return;
	}

	print_link($cat->getName(), $cat->getId(), $groupName);

	if ( $cat->hasChildren()) {
		$childs = $cat->getChildren();
		
		echo "<ul>\n";
		
		foreach ( $childs as $child) {
			if ($child->hasChildren()) {
				add_cat_option( $child, $cat->getName());
			} else {
				add_cat_option( $child, $cat->getName());
				echo "</li>\n";
			}
		}
		
		echo "</ul>\n</li>\n";
		
	}
}

function print_link($catName, $catId, $groupName) {
	global $hassoCat;
	if ($hassoCat == $catId) {
		echo "   <li><a href=\"" . rex_getUrl(REX_ARTICLE_ID, 0, array( 'hassoCat' => $catId )) . "\" id=\"active\">$catName</a>\n";
	} else {
		echo "   <li><a href=\"" . rex_getUrl(REX_ARTICLE_ID, 0, array( 'hassoCat' => $catId )) . "\">$catName</a>\n";
	}
}


function hassoPicList() {
	global $hassoCat, $filepath;
	
	$ooCat = OOMediaCategory::getCategoryById( $hassoCat);
	$catFiles = $ooCat->getFiles();

	echo "<div id=\"hassoThumbs\">\n";

	foreach ( $catFiles as $file ) {
		$fileId = $file->getId();
		$fileTitle = $file->getTitle();
		$fileName = $file->getFileName();
		$fileWidth = $file->getWidth();
		$fileHeight = $file->getHeight();
		
		// create Thumblink
		$imglink = rex_getUrl(REX_ARTICLE_ID, 0, array( 'rex_resize' => REX_VALUE[2] . 'a__' . $fileName ));
		
		echo "<div class=\"hassoThumb\">\n";
		echo "<a href=\"";
		echo createPicLink( $fileId );
		echo "\"><img src=\"$imglink\" alt=\"Bild: $fileTitle\" /></a>\n";
		echo "</div>\n\n";
	}
	echo "</div>";
}

function hassoShowPic() {
	global $hassoPic, $filepath;
	$ooPic = OOMedia::getMediaById ( $hassoPic );
	$resize = false;

	$fileId = $ooPic->getId();
	$fileTitle = $ooPic->getTitle();
	$fileDescription = $ooPic->getDescription();
	$fileName = $ooPic->getFileName();
	$fileWidth = $ooPic->getWidth();
	$fileHeight = $ooPic->getHeight();

	// resize only if the picture is greater than the desired size
	if ( (($fileWidth > REX_VALUE[3]) && ($fileHeight < REX_VALUE[3])) ||
		(($fileHeight > REX_VALUE[3]) &&  ($fileWidth < REX_VALUE[3])) ||
		(($fileHeight > REX_VALUE[3]) &&  ($fileWidth > REX_VALUE[3])) ) {
		$imglink = rex_getUrl(REX_ARTICLE_ID, 0, array( 'rex_resize' => REX_VALUE[3] . 'a__' . $fileName ));
		$resize = true;

		$file_title1 = preg_replace("| |", "_", $fileTitle);
		$file_title1 = preg_replace("|-|", "_", $file_title1);

		$origSizePicLink  = "javascript:newWindow('". $file_title1 ."','";
		$origSizePicLink .= $filepath . $fileName . "','";
		$origSizePicLink .= $fileWidth + 20 . "','";
		$origSizePicLink .= $fileHeight + 20 . "','')";
	} else {
		$imglink = $filepath . $fileName;
	}

	echo "<div id=\"hassoPic\">\n";
	echo "<div class=\"hassoTitle\">$fileTitle</div>\n";
	echo "<div class=\"hassoDescription\">$fileDescription</div>\n";
	
	if ( $resize && ("REX_VALUE[6]" == true) ) { echo "<a href=\"$origSizePicLink\">\n"; };
	echo "<img src=\"" . $imglink . "\" alt=\"Bild: $fileTitle\"/>\n";
	if ( $resize && ("REX_VALUE[6]" == true) ) { echo "</br>Bild vergrößern</a>\n"; };
	echo "</div>\n\n";

	hassoPrevNextNav();
}


function createPicLink( $picId ) {
	global $hassoCat;
	
	$link = rex_getUrl(REX_ARTICLE_ID, 0, array( 'hassoCat' => $hassoCat, 'hassoPic' => $picId));
	
	return $link;
}


function hassoPrevNextNav(){
	global $hassoPic, $hassoCat;
	
	$ooCat = OOMediaCategory::getCategoryById( $hassoCat);
	$catFiles = $ooCat->getFiles();

	// collect all picture-ids
	foreach ( $catFiles as $file ) {
		$picIdList[] = $file->getId();
	}
	
	echo "<div id=\"hassoPrevNextNav\">";
	
	// prev/next only if needed
	if ( count($picIdList) > 1) {
		// get position of my pic in the list
		$picIdKey = array_search ($hassoPic, $picIdList);
	
		// prev/next positions in the array
		$picIdKeyPrev = $picIdKey - 1;
		$picIdKeyNext = $picIdKey + 1;
		
		// print prev link
		if ( array_key_exists($picIdKeyPrev, $picIdList) ) {
			$picIdPrev = $picIdList[$picIdKeyPrev];
			
			echo "<div id=\"hassoPrevPic\">";
			echo "<a href=\"";
			echo createPicLink( $picIdPrev );
			echo "\">REX_HTML_VALUE[4]</a></div>\n";
			
		};
		
		// print next link
		if ( array_key_exists($picIdKeyNext, $picIdList) ) {
			$picIdNext = $picIdList[$picIdKeyNext];
			
			echo "<div id=\"hassoNextPic\">";
			echo "<a href=\"";
			echo createPicLink( $picIdNext );
			echo "\">REX_HTML_VALUE[5]</a></div>\n";
			
		};
		
	}
	
	echo "</div>";
}


////////////////////////////////////////////
// calling the functions
////////////////////////////////////////////

// print the navigation
hassoPrintMediaCats($galleryId);

// show the thumbs or show the picture
if ( $hassoPic != "" ) {
	// single picture
	hassoShowPic();
} else {
	// thumbnail overview
	hassoPicList();
}

?>

therancher
Beiträge: 488
Registriert: 29. Jan 2007, 18:32
Wohnort: Sachsen

29. Mai 2009, 10:54

Hi, nur mal auf die schnelle: in der hassolist werden die files ausgelesen. wenn du nur showpic aufrufst, ist die dateiliste natürlich noch nicht vorhanden. also musst du die rlevanten codeschnipsel aus der hassolist in die showpic-routine bringen. hab momentan no time, aber vielleicht hilft dirs ja.

vg HarryT
spontanität will wohl überlegt sein!

Surkan
Beiträge: 102
Registriert: 18. Apr 2009, 15:28
Wohnort: Jena

29. Mai 2009, 11:07

mh ich glaube das wird ein großes Rätselraten.

Wenn ich dich richtig verstanden habe, müssen zuerst alle Bilder ermittelt werden, damit die Thumblist dargestellt werden kann. Erst dann funktioniert auch die Einzelbildansicht.

Also wenn ich das so umbaue wie du sagst, dann wird doch aber immer noch die Thumbliste zuerst angezeigt. Nur mit dem Unterschied, dass ich die Thumbliste (von der Funktion her) nicht mehr brauche...

Meine Überlegung war jetzt (ganz einfach) alles so zu lassen und nur eine "Weiterleitung" reinzuschreiben. Sprich die Thumblist wird ganz normal erzeugt und dann kommt der Code der sagt, UND JETZT BILD 1 ANZEIGEN.

Dann müsste man auch nicht das ganze Modul umbauen. Nun würde ich gern wissen, ob meine Idee überhaupt geht...

Tizian
Beiträge: 151
Registriert: 4. Apr 2008, 11:58
Wohnort: Bremen
Kontaktdaten: Website

29. Mai 2009, 11:33

hallo surkan,

ich benutze die "galleria" http://devkick.com/lab/galleria/

das modul ruft eine liste der bilder auf, der galleria-script gibt dann das jeweilige bild in groß aus. die thumbnails habe ich mit css (.galleria {display:none;}) ausgeblendet. die navi "vorheriges" und "nächstes" bild läßt sich beliebig positionieren.

mein modul:
eingabe

Code: Alles auswählen

<h2>Liste der zu zeigenden Bilder</h2>
REX_MEDIALIST_BUTTON[1]
ausgabe:

Code: Alles auswählen

<div class="demo">
<p class="nav"><a href="#" onclick="$.galleria.prev(); return false;">« previous</a> | <a href="#" onclick="$.galleria.next(); return false;">next »</a></p>
<div id="main_image"></div>
<ul class="gallery_dennis">

<?php
/* Basiert auf dem Beispielmodul für Addon slideshow
 * Autor: Andreas Eberhard, andreas.eberhard@gmail.com
 * http://rex.andreaseberhard.de */

	unset($rxmodule);

	// REDAXO-Version
	$rxmodule['rexversion'] = isset($REX['VERSION']) ? $REX['VERSION'] . $REX['SUBVERSION']  : $REX['version'] . $REX['subversion'];

	// Bilddateien aus Medialist
	$rxmodule['imagelist'] = explode(',', trim("REX_MEDIALIST[1]"));

	// maximale Bildgröße
	$rxmodule['imgsize'] = trim("REX_VALUE[1]");
	if ($rxmodule['imgsize']=='')
	{
		$rxmodule['imgsize'] = '128a';
	}


// Links für die Bilder ausgeben
	foreach ($rxmodule['imagelist'] as $rxmodule['file']) {

		$rxmodule['media'] = OOMedia::getMediaByName($rxmodule['file']);

		if ($rxmodule['media']) {
			if ( in_array($rxmodule['rexversion'], array('3.01', '3.11', '32')) ) { // REDAXO 3.2.x, REDAXO 3.01, REDAXO 3.11
				$rxmodule['mediatitle'] = str_replace(array("\r\n", "\n", "\r"), ' ', $rxmodule['media']->getTitle());
			}
			if ( in_array($rxmodule['rexversion'], array('40', '41', '42')) ) { // REDAXO 4.0.x, 4.1.x, 4.2.x
				$rxmodule['mediatitle'] = str_replace(array("\r\n", "\n", "\r"), ' ', $rxmodule['media']->getValue('title'));
			}
			echo '<li class="active right" ><img src="' . $REX['HTDOCS_PATH'] . 'files/' . $rxmodule['file'] . '" title="' . $rxmodule['mediatitle'] . '" alt="" class="right"/></li>';
			echo '' . "\n";
		}
	}
?>
</ul>
</div>
hilf das weiter?
schöne grüße
tizian
********************************
ansichtsache TM

Surkan
Beiträge: 102
Registriert: 18. Apr 2009, 15:28
Wohnort: Jena

29. Mai 2009, 12:15

SUPER

Von der Funktion her genau das was ich suche. Muss ich dann alles mal testen, ob ich das auch eingebunden kriege.

Beim ersten Versuch gerade, hat es nicht geklappt.

Nagut - aber ganz großen Dank!!!

Surkan
Beiträge: 102
Registriert: 18. Apr 2009, 15:28
Wohnort: Jena

29. Mai 2009, 19:39

Hey Tizian
irgendwie komm ich nicht so richtig damit klar.

ich hab mir die Java-Dateien und die CSS runtergeladen. Das Modul eingebaut, das Template um den Head angepasst - aber es geht nicht.

Die Bilder werden über das Modul eingebunden und dargestellt. Hier ist denke ich mal alles ok.

Wenn ich dann aber die Java dateien lade (ich habs erstmal ohne den geänderten Head gemacht um zu schauen ob das modul funktioniert) dann wird das große Bild nicht angezeigt (schwarz) und die Thumbs (über Css noch NICHT ausgeblendet) sind zwar klein aber nicht resized. Ich kann nicht anklicken, weder Thumbs, noch das große Bild noch die next/prev Links gehen...

Große ?????????

Surkan
Beiträge: 102
Registriert: 18. Apr 2009, 15:28
Wohnort: Jena

4. Jun 2009, 13:11

Gut ich hab jetzt eine Lösung für mein Problem.

Ich wollte ja eine Galerie in der ich die Bilder nur einzeln und nicht als Thumbs sehe.

Meine Versuche mit der hassoGalerie sind immer fehlgeschlagen. Auch die Galerie von Tizian hat mir (noch nicht) weitergeholfen - Java will nicht so wie ich - bin noch am probieren

Jedenfalls hab ich mir das Modul zusammen mit einem großem PHP Buch nochmal zu gemüte geführt. Ich bin dann zusammen mit einem Freund das Problem nochmal durchgegangen.

Das Problem ist ja, (für die die es interssiert) dass die if-Schleife am Ende entscheidet, ob die PicList oder die ShowPic aufgerufen wird. Entschieden wird das daran, ob die $hassoPic leer ist, oder ob was drinn steht. Also bin ich auf die geniale Idee gekommen, die $hassoPic einfach mit der ID des ersten Bildes zu "füllen". Dazu habe ich (machen lassen) eine if-Schleife eingebaut, die prüft, ob die $hassoPic leer ist. Wenn ja, dann soll $hassoPic den Wert der ersten ID bekommen.

Damit ich aber (falls ich das mal will) auch immernoch die Thumbliste manuell aufrufen kann (über den Link der den Namen der Mediakategorie trägt) wurde noch eine zusätzliche Variable eingebaut die in der if-Schleife am Ende abgefragt wird.

So genug geredet - hier mal die NEUE Ausgabe der hassoGalerie:

Code: Alles auswählen

<div id="hassoGallery">
<?php
///////////////////////////////////////////
// hassoGallery-Module
// for Redaxo 3
//
// writen by Carsten Biebricher
// date: 23.07.2005
///////////////////////////////////////////
//
// required Redaxo3 AddOn: ImageResize
//
/////
//
// limitations: the gallery-root has to be a folder 
//              in the mediapool root
//
/////
// changes:	- solved problems with 'Call to undefined function'
//			- true/false is not a boolean value ;)
//			- picture-title with spaces !! thanks to Alex
//			- prev/next links in the single-picture view
//			- if thumbs in the start-category; show them
//			- reduce global vars
////////////////////////////////////////////



////////////////////////////////////////////
// global module vars
////////////////////////////////////////////

global $hassoPic;
global $hassoCat;
global $filepath;
global $thumb;
$galleryId = REX_VALUE[1];
// REX_VALUE[2] = thumbsize
// REX_VALUE[3] = max picture size (single view)
// REX_VALUE[4] = text of the prev-link
// REX_VALUE[5] = text of the next-link
$aktuelleId = $this->getValue('article_id'); 
$filepath = "./files/";  // path to the pictures

if (!$hassoCat) { $hassoCat = $galleryId; };

////////////////////////////////////////////
// down here are the functions
////////////////////////////////////////////

function hassoPrintMediaCats( $cat = null) {
	$selectCats = null;
	if ( is_int( $cat)) {
		$selectCats = array( OOMediaCategory::getCategoryById( $cat));
	} else if ( OOMediaCategory::isValid( $cat)) {
		$selectCats = array( $cat);
	} else {
		$selectCats = OOMediaCategory::getRootCategories();
	}
	echo "<div id=\"hassoNav\">\n";
	echo "\n<ul>\n";

	foreach ( $selectCats as $selectCat) {
		add_cat_option( $selectCat);
	}
	
	echo "</ul>\n</div>\n";
}


function add_cat_option( &$cat, $groupName = '') {
	if( empty( $cat)) {
		echo "\nCAT is empty!\n";
		return;
	}

	print_link($cat->getName(), $cat->getId(), $groupName);

	if ( $cat->hasChildren()) {
		$childs = $cat->getChildren();
		
		echo "<ul>\n";
		
		foreach ( $childs as $child) {
			if ($child->hasChildren()) {
				add_cat_option( $child, $cat->getName());
			} else {
				add_cat_option( $child, $cat->getName());
				echo "</li>\n";
			}
		}
		
		echo "</ul>\n</li>\n";
		
	}
}

function print_link($catName, $catId, $groupName) {
	global $hassoCat;
	if ($hassoCat == $catId) {
		echo "   <li><a href=\"" . rex_getUrl(REX_ARTICLE_ID, 0, array( 'hassoCat' => $catId )) . "&thumb=1" . "\" id=\"active\">$catName</a>\n";
	} else {
		echo "   <li><a href=\"" . rex_getUrl(REX_ARTICLE_ID, 0, array( 'hassoCat' => $catId )) . "\">$catName</a>\n";
	}
}


function hassoPicList() {
	global $hassoCat, $filepath;
	
	$ooCat = OOMediaCategory::getCategoryById( $hassoCat);
	$catFiles = $ooCat->getFiles();

	echo "<div id=\"hassoThumbs\">\n";

	foreach ( $catFiles as $file ) {
		$fileId = $file->getId();
		$fileTitle = $file->getTitle();
		$fileName = $file->getFileName();
		$fileWidth = $file->getWidth();
		$fileHeight = $file->getHeight();
		
		// create Thumblink
		$imglink = rex_getUrl(REX_ARTICLE_ID, 0, array( 'rex_resize' => REX_VALUE[2] . 'a__' . $fileName ));
		
		echo "<div class=\"hassoThumb\">\n";
		echo "<a href=\"";
		echo createPicLink( $fileId );
		echo "\"><img src=\"$imglink\" alt=\"Bild: $fileTitle\" /></a>\n";
		echo "</div>\n\n";
	}
	echo "</div>";
}

function hassoShowPic() {
	global $hassoPic, $hassoCat, $filepath;
	
	if ( $hassoPic == "" ) {
		$ooCat = OOMediaCategory::getCategoryById( $hassoCat);
		$catFiles = $ooCat->getFiles();
		
		$hassoPic = $catFiles[0]->getId();
	}
	
	$ooPic = OOMedia::getMediaById ( $hassoPic );
	$resize = false;

	$fileId = $ooPic->getId();
	$fileTitle = $ooPic->getTitle();
	$fileDescription = $ooPic->getDescription();
	$fileName = $ooPic->getFileName();
	$fileWidth = $ooPic->getWidth();
	$fileHeight = $ooPic->getHeight();

	// resize only if the picture is greater than the desired size
	if ( (($fileWidth > REX_VALUE[3]) && ($fileHeight < REX_VALUE[3])) ||
		(($fileHeight > REX_VALUE[3]) &&  ($fileWidth < REX_VALUE[3])) ||
		(($fileHeight > REX_VALUE[3]) &&  ($fileWidth > REX_VALUE[3])) ) {
		$imglink = rex_getUrl(REX_ARTICLE_ID, 0, array( 'rex_resize' => REX_VALUE[3] . 'a__' . $fileName ));
		$resize = true;

		$file_title1 = preg_replace("| |", "_", $fileTitle);
		$file_title1 = preg_replace("|-|", "_", $file_title1);

		$origSizePicLink  = "javascript:newWindow('". $file_title1 ."','";
		$origSizePicLink .= $filepath . $fileName . "','";
		$origSizePicLink .= $fileWidth + 20 . "','";
		$origSizePicLink .= $fileHeight + 20 . "','')";
	} else {
		$imglink = $filepath . $fileName;
	}

	echo "<div id=\"hassoPic\">\n";
	echo "<div class=\"hassoTitle\">$fileTitle</div>\n";
	echo "<div class=\"hassoDescription\">$fileDescription</div>\n";
	
	if ( $resize && ("REX_VALUE[6]" == true) ) { echo "<a href=\"$origSizePicLink\">\n"; };
	echo "<div class=\"hassoBigPic\"><img src=\"" . $imglink . "\" alt=\"Bild: $fileTitle\"/></div>\n";
	if ( $resize && ("REX_VALUE[6]" == true) ) { echo "</br>Bild vergrößern</a>\n"; };
	echo "</div>\n\n";

	hassoPrevNextNav();
}


function createPicLink( $picId ) {
	global $hassoCat;
	
	$link = rex_getUrl(REX_ARTICLE_ID, 0, array( 'hassoCat' => $hassoCat, 'hassoPic' => $picId));
	
	return $link;
}


function hassoPrevNextNav(){
	global $hassoPic, $hassoCat;
	
	$ooCat = OOMediaCategory::getCategoryById( $hassoCat);
	$catFiles = $ooCat->getFiles();

	// collect all picture-ids
	foreach ( $catFiles as $file ) {
		$picIdList[] = $file->getId();
	}
	
	echo "<div id=\"hassoPrevNextNav\">";
	
	// prev/next only if needed
	if ( count($picIdList) > 1) {
		// get position of my pic in the list
		$picIdKey = array_search ($hassoPic, $picIdList);
	
		// prev/next positions in the array
		$picIdKeyPrev = $picIdKey - 1;
		$picIdKeyNext = $picIdKey + 1;
		
		// print prev link
		if ( array_key_exists($picIdKeyPrev, $picIdList) ) {
			$picIdPrev = $picIdList[$picIdKeyPrev];
			
			echo "<div id=\"hassoPrevPic\">";
			echo "<a href=\"";
			echo createPicLink( $picIdPrev );
			echo "\">REX_HTML_VALUE[4]</a></div>\n";
			
		};
		
		// print next link
		if ( array_key_exists($picIdKeyNext, $picIdList) ) {
			$picIdNext = $picIdList[$picIdKeyNext];
			
			echo "<div id=\"hassoNextPic\">";
			echo "<a href=\"";
			echo createPicLink( $picIdNext );
			echo "\">REX_HTML_VALUE[5]</a></div>\n";
			
		};
		
	}
	
	echo "</div>";
}


////////////////////////////////////////////
// calling the functions
////////////////////////////////////////////

// print the navigation
hassoPrintMediaCats($galleryId);

if ($thumb == 1) {
	hassoPicList();
} else {
	hassoShowPic();
}

?>
</div>
Ich glaube, dass ich auch noch irgendwo ein zusätzlichen <div> eingebaut habe. Jedenfalls klappt das jetzt wunderbar.

Ich werde zwar weiter probieren die Galerie von Tizian zum laufen zu kriegen, aber jedenfalls hab ich erstmal was.

Zurück zu „Allgemeines [R4]“