[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Medienkategorie als Bildergallerie (Modulumbau) - 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/
Tizian
Beiträge: 151
Registriert: 4. Apr 2008, 11:58
Wohnort: Bremen
Kontaktdaten: Website

Medienkategorie als Bildergallerie (Modulumbau)

25. Mai 2009, 12:09

hallo,
ich möchte gerne das folgende modul so umbauen, das ich keine einzelbilder über den REX_MEDIALIST_BUTTON auswähle sondern eine Kategorie des Medienpool auswähle und alle darin befindlichen bilder ausgegeben werden. danke für eure hilfe.

eingabe:

Code: Alles auswählen

<?php
/**
 * --------------------------------------------------------------------
 *
 * Modul-Input: Beispielmodul f�r Addon jQueryLightbox
 *
 * Autor: Andreas Eberhard, andreas.eberhard@gmail.com
 *        http://rex.andreaseberhard.de
 *
 * --------------------------------------------------------------------
 */
?>

<table width="98%" border="0" cellpadding="0" cellspacing="3">

	<tr>
		<td valign="top">
			<strong style="display:block;width:185px;">Bild(er) ausw&auml;hlen ...</strong>
		</td>
		<td valign="top">
			REX_MEDIALIST_BUTTON[1]
			<div id="REX_MEDIALIST_PREVIEWC" style="display:none;margin-bottom:25px;">Vorschau:<br /><img id="REX_MEDIALIST_PREVIEW" src="../files/clear.gif" style="cursor:pointer;border:solid 1px #999;" alt="Vorschau" title="Vorschau" /></div>
			<div style="display:block;width:370px;"></div>
		</td>
	</tr>



</table>

<script type="text/javascript">
function addEvent( obj, type, fn )
{
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
	} else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}
function rex_media_preview(){
	var strFileName = document.getElementById("REX_MEDIALIST_SELECT_1").value;
	if ( (strFileName.lastIndexOf(".jpg")>0) || (strFileName.lastIndexOf(".jpeg")>0) || (strFileName.lastIndexOf(".gif")>0) || (strFileName.lastIndexOf(".png")>0) || (strFileName.lastIndexOf(".bmp")>0) ) {
		newImage = new Image();
		newImage.onload = function() {
			document.getElementById("REX_MEDIALIST_PREVIEW").src = newImage.src;
			document.getElementById("REX_MEDIALIST_PREVIEWC").style.display = "block";
		}
		newImage.src = "../index.php?rex_resize=196a__"+document.getElementById("REX_MEDIALIST_SELECT_1").value;
	} else {
		document.getElementById("REX_MEDIALIST_PREVIEWC").style.display = "none";
	}
}
function rex_media_hidepreview(){
		document.getElementById("REX_MEDIALIST_PREVIEWC").style.display = "none";
}
function rex_toggle_plusoptions(){
	if ( document.getElementById("moduleplusoptions").style.display == "none" ) {
		document.getElementById("moduleplusoptions").style.display = "block";
	} else {
		document.getElementById("moduleplusoptions").style.display = "none";
	}
}
addEvent(document.getElementById("REX_MEDIALIST_SELECT_1"), "change", rex_media_preview);
addEvent(document.getElementById("REX_MEDIALIST_SELECT_1"), "click", rex_media_preview);
addEvent(document.getElementById("REX_MEDIALIST_PREVIEW"), "click", rex_media_hidepreview);
</script>
ausgabe:

Code: Alles auswählen

<?php
/**
 * --------------------------------------------------------------------
 *
 * Modul-Output: Beispielmodul f�r Addon jQueryLightbox
 *
 * 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';
	}

	// CSS-Klasse
	$rxmodule['cssclass'] = trim("REX_VALUE[2]");

	// Zufallszahl f�r Ausgabe
	srand((double)microtime()*1000000);
	$rxmodule['random'] = rand (100,900) . rand (100,900); 

	// 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, 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'));
			}
			if (trim($rxmodule['mediatitle']=='') or !$rxmodule['mediatitle']) {
				$rxmodule['mediatitle'] = $rxmodule['file'];
			}
			echo '<a class="' . $rxmodule['cssclass'] . '" rel="lightbox[jqlb' . $rxmodule['random'] . ']" href="' . $REX['HTDOCS_PATH'] . 'index.php?rex_resize=600a__' . $rxmodule['file'] . '" title="' . $rxmodule['mediatitle'] . '">';
			echo '<img src="' . $REX['HTDOCS_PATH'] . 'index.php?rex_resize=125c__75h__' . $rxmodule['file'] . '" alt="' . $rxmodule['mediatitle'] . '" />';
			echo '</a>' . "\n";
		}
	}
?>
schöne grüße
tizian
********************************
ansichtsache TM

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

25. Mai 2009, 13:35

hallo tizian

in der eingabe muß das als auswahl rein... bitte value anpassen

Code: Alles auswählen

Kategorie waehlen 
<select name="VALUE[1]" class="inp100"> 
<?php 
// code geklaut vom "Kategorie Medienpool bereitstellen"- Modul (noch ein DANKE mehr) 
$cats = OOMediaCategory::getRootCategories(); 
foreach ($cats as $cat) { 
   $selected = ''; 
   if ("REX_VALUE[1]" == $cat->getId()) $selected = ' selected="selected"'; 
   print '<option value='.$cat->getId().' '.$selected.'>'.$cat->getName().'</option>'; 
      $cat2 = $cat->getChildren(); 
foreach ($cat2 as $cat) { 
  
   print '<option value='.$cat->getId().' '.$selected.'>---- '.$cat->getName().'</option>'; 
  
   } 
} 
?> 
</select><br /> 
<br /> 
und in der ausgabe das hier:

Code: Alles auswählen

<?php 

// code geklaut vom "Kategorie Medienpool bereitstellen"- Modul ... thanks to all of us 
$mediaCat = OOMediaCategory::getCategoryById("REX_VALUE[1]"); 

$ResultPointer = mysql_query(" 
SELECT * FROM `rex_file` WHERE category_id = 'REX_VALUE[1]' ORDER BY originalname "); 
if($ResultPointer != null) 
{ 
  echo "<table cellspacing=4 cellpadding=0>"; 
   $a=0; 
  for($i=0; $i<mysql_num_rows($ResultPointer); $i++) 
  { 
    $a++; 
    $Result=mysql_fetch_object($ResultPointer); 
   $REX['MODULE_BILDGALERIE_ID']++;
    $fname = $Result->filename; 
    $file_ext = substr(strrchr($fname, "."),1); 

    // code for resizing 
   if ($a==1) echo '<tr>'; 
    echo '<td  class="jaosg_thumbnail"><a id="mb'.$REX['MODULE_BILDGALERIE_ID'].'" class="mb" href="'.$REX[HTDOCS_PATH].'/files/'.$Result->filename.'" title="'.$Result->title.'"><img  class="galimg" border=0 src="'.$REX['HTDOCS_PATH'].'index.php?rex_resize=150w__'.$Result->filename.'" alt="'.$title.'" /></a><div class="multiBoxDesc mb'.$REX['MODULE_BILDGALERIE_ID']--.'">'.$title.'<br /><br /></div></td>'; 
if ($a==4){ 
echo "</tr>"; 
         $a=0; 
               } 
  
    // end resize code 

  } 
echo "</table>"; 
} 
else 
{ 
   echo"<b>FEHLER !!! Es konnten keine Daten gelesen werden.</b>"; 
} 
?>

ist aus der jaos galerie, evtuell bitte die tabellen rauschmeissen und tabellenlos machen.
hatte ich im mo´ment nicht die zeit für.

hoffe das hilft dir.

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

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

25. Mai 2009, 15:30

hallo richard,

danke!

klar das ich da noch dran arbeiten musste ... aber ich will ja auch noch was lernen :–)

die eingabe habe ich mit dem script von oben ergänzt, dann gibt es auch eine bildervorschau im backend.

und die ausgabe so umgemodelt damit das mit meineer lightboxgalerie funktioniert:

Code: Alles auswählen

<?php

	unset($rxmodule);

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


	// Zufallszahl f�r Ausgabe
	srand((double)microtime()*1000000);
	$rxmodule['random'] = rand (100,900) . rand (100,900); 

	
// code geklaut vom "Kategorie Medienpool bereitstellen"- Modul ... thanks to all of us
$mediaCat = OOMediaCategory::getCategoryById("REX_VALUE[1]");

$ResultPointer = mysql_query("
SELECT * FROM `rex_file` WHERE category_id = 'REX_VALUE[1]' ORDER BY originalname ");
if($ResultPointer != null)
{
  echo "";
   $a=0;
  for($i=0; $i<mysql_num_rows($ResultPointer); $i++)
  {
    $a++;
    $Result=mysql_fetch_object($ResultPointer);
   $REX['MODULE_BILDGALERIE_ID']++;
    $fname = $Result->filename;
    $file_ext = substr(strrchr($fname, "."),1);


    // code for resizing
   if ($a==1) echo '';
    echo '<a  class="" rel="lightbox[jqlb' . $rxmodule['random'] . ']" href="'.$REX['HTDOCS_PATH'].'index.php?rex_resize=600a__'.$Result->filename.'" alt="'.$fname.'" ><img src="'.$REX['HTDOCS_PATH'].'index.php?rex_resize=125c__75h__'.$Result->filename.'" alt="'.$Result->filename.'" /></a>';
if ($a==4){
echo "";
         $a=0;
               }
 
    // end resize code

  }
echo '</a>' . "\n"; 
}
else
{
   echo"<b>FEHLER !!! Es konnten keine Daten gelesen werden.</b>";
}
?>
schöne grüße
tizian
********************************
ansichtsache TM

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

25. Mai 2009, 15:45

Das sieht ja super aus...

Allerdings wird in der Ausgabe der a-Tag einmal zuviel geschlossen:

vorletztes echo:

Code: Alles auswählen

echo '</a>' . "\n"; 
Nun gut wenn mir jetzt noch jemand erklären kann, wie ich eine Pagination/Blätter Funktion einbaue, bin ich super glücklich.

Das würde nähmlich meine Frage (siehe hier: http://forum.redaxo.de/ftopic12023.html?) beantworten...

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

26. Mai 2009, 12:26

gibt es irgendwo eine Anleitung für eine Pagination/Blätter Funktion??? Ich hab versucht die Funktion aus der Multilist zu übernehmen. Aber meine PHP-Kenntnisse gehen gegen null.

Zurück zu „Allgemeines [R4]“