Zum Inhalt springen

chgallery Single-View Weiterentwicklung

Erstellt am 22. Juli 2011 · 2 Antworten · letzte Antwort am 22. September 2011

Tags: Frage

typo3_hp ·

Hallo!

Ich versuche gerade bei der chgallery zwischen dem pagebrowser (in der Single-View) die Funktionalität einzubauen dass mir angezeigt wird
"Referenz 1 von 8"

Ich habe es schon hinbekommen dass er mir anzeigt "Referenz 1"

Habe 2 Probleme:

1) Mein div numbers ist nicht innerhalb des pagebrowsers!
2) Mit count($imageList) bekomme ich 13 heraus obwohl in dieser Galerie nur 3 Bilder sind!

Hier der Auszug aus dem Firebug:

<div class="tx-chgallery-pi1">
<div class="numbers">Referenz 2</div>
<div class="bigimg">
<div class="pagebrowser">
--<div class="prev">
--<div class="next">
--<div class="clr">
</div>

der div "numbers" soll zwischen "prev" und "next"innerhalb von pagebrowser

Hier das TS:

function getSingleView() {
		$template['total'] = $this->cObj->getSubpart($this->templateCode,'###TEMPLATE_SINGLE###');
		$dir = $this->piVars['dir'];
		$singleImage = $this->piVars['single'];

		// return empty string if no get var for the single image
		if ($singleImage==0) {
			return '';
		}

		// get the single image from CATEGORY view
		if ($dir > 0) {
			// get all dirs
			$dirList 		= $this->config['subfolders'][$dir-1];
			$imageList 	= $this->getImagesOfDir($dirList['path']);
			$imgPos = ($this->config['exclude1stImg'] == 0) ? $singleImage-1 : $singleImage;
			
			$markerArray = $this->getSingleImageSlice($imageList, $imgPos);

		// get the single image from GALLERY view
		} else {
			$imageList 		= $this->getImagesOfDir($this->config['path']); // get all imgs of the dir
			$markerArray 	= $this->getSingleImageSlice($imageList, $singleImage-1);
		}
		
		// count=0 means, that this is the LIST view which has no image to load, so hide everything 
		if(count($markerArray)==0) {
			$subpartArray['###SINGLE_IMAGE###'] = '';
		}

		// pagebrowser: PREV image
		$linkConf = array();
		$linkConf['parameter'] = $this->getLinkParameter();
		$linkConf['useCacheHash'] = 1;
		
		if ($singleImage > 1) {
			$override = $this->piVars;
			$override['single'] = $singleImage-1;

			// check if previous image is on the previous page
			if ( $override['single']/$this->config['pagebrowser'] <= $this->piVars['pointer']   ) {
				$override['pointer'] = $override['pointer']-1;
				if ($override['pointer']==0) $override['pointer'] = ''; // if value 0, set it to '' to avoid showing 0 in the url
			}
			
			// change param array to string
			foreach ($override as $key=>$value) {
				if ($key!='') $linkConf['additionalParams'].= '&tx_chgallery_pi1['.$key.']='.$value;
			}

			$markerArray['###PREV###'] = $this->cObj->typolink($this->pi_getLL('previousImage'), $linkConf);
		} else {
			$markerArray['###PREV###'] = '';
			
			
		
		} 

		$content .= '<div class="numbers">' .  'Referenz ' . $singleImage  . '</div>';

		// pagebrowser: NEXT image
		if ($singleImage < count($imageList)) {
			$override = $this->piVars;
			$override['single'] = $singleImage+1;

			// check if next image is on the next page
			$pointer = ($this->piVars['pointer'] ==0) ? 1 : $this->piVars['pointer'];
			if (($override['single']/$this->config['pagebrowser']) > $pointer   ) {
				$override['pointer'] = $override['pointer']+1;
			}	
			
			// change param array to string
			foreach ($override as $key=>$value) {
				if ($key!='') $linkConf['additionalParams'].= '&tx_chgallery_pi1['.$key.']='.$value;
			}	

			$markerArray['###NEXT###'] = $this->cObj->typolink($this->pi_getLL('nextImage'), $linkConf);
		} else {
			$markerArray['###NEXT###'] = '';
		}
		
		// hide exif
		if ($markerArray['###EXIF###']=='') {
			$subpartArray['###EXIF###'] = '';
		} 
		
		$content.= $this->cObj->substituteMarkerArrayCached($template['total'], $markerArray, $subpartArray);	
		return $content;

Der von mir eingefügte und relevante Teil ist:

$content .= '<div class="numbers">' .  'Referenz ' . $singleImage  . '</div>';

Hoffe ihr könnt mir helfen

Grüße und Danke

Manfred007 ·

Hallo leider kann ich dir nicht helfen. Aber vielleicht hast du das Problem ja schon gelöst und kannst jetzt mir helfen. Ich würde gerne im backend nur die single ansicht für den redakteur freischalten. Außerdem möchte ich gerne im Fe singleview unterhalb des Bildes einen Pagebrowser 1 2 3 4 5 und so weiter einblenden und das vorherige Seite / nächste Seite ausblenden. Der Anwender soll dann einfach auf eine Zahl klicken und bekommt das entsprechende Bild angezeigt.

Ich hoffe, du kannst mir helfen

Gruß Manfred

Manfred007 ·

Hallo, die Anzahl der Bilder kannst du mit dem Marker ###COUNT### abfragen.

Gruß Manfred

Hat vielleicht noch jemand eine Lösung für mein Problem?