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/
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/
Keine "title" und "alt" Übernahme bei WY
Die Angaben aus dem Medienpool werden nicht in den "title" und "alt" Tag übernommen. Ich verwende R 4.2.1 mit TinyMCE und WYSIWYGImage 1.8. Kann mir da jemand weiterhelfen?
Re: Keine "title" und "alt" Übernahme be
Wie sieht denn dein Code aus, mit dem du "title" und "alt" Tag ausließt?mmike hat geschrieben:Die Angaben aus dem Medienpool werden nicht in den "title" und "alt" Tag übernommen. Ich verwende R 4.2.1 mit TinyMCE und WYSIWYGImage 1.8. Kann mir da jemand weiterhelfen?
<?php print $Footer; ?>
Sven
Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!
REX 5 :: Tricks und Tipps
REX 5 :: Modulesammlung
Wiki zu Redaxo 3 und 4 (!nur noch im Webarchiv!)
Sven
Ich würde ja die Welt verändern,
doch der Quellcode ist mir zu absurd!
REX 5 :: Tricks und Tipps
REX 5 :: Modulesammlung
Wiki zu Redaxo 3 und 4 (!nur noch im Webarchiv!)
Das Modul sieht folgendermaßen aus:
Eingabe:
Ausgabe:
Eingabe:
Code: Alles auswählen
<?php
/**
* --------------------------------------------------------------------
*
* Modul-Input: WYSIWYGImage, wysiwyg-Text mit Bild/Bildergalerie
* Version: 1.8, 23.07.2009
*
* Autor: Andreas Eberhard, andreas.eberhard@gmail.com
* http://rex.andreaseberhard.de
*
* Features:
* - Bild zum Text positionierbar
* - TinyMCE oder markitUp als Editor
* - Anzeige eines Zufallsbildes möglich
* - Bildergalerie über zusätzliches Addon möglich
*
* --------------------------------------------------------------------
*
* Das Modul benötigt die Aktion "rexnames", bei Presave-Action ADD+EDIT
* und bei Postsave-Action ADD+EDIT (REDAXO 4.x)
* [POST|ADD|EDIT] und [PRE|ADD|EDIT] bei Redaxo 3.x
*
* PHP-Code für Aktion "rexnames" (### entfernen!):
*
<?php
$rexname = rex_request("rexname","array"); // ab REDAXO 4.2.1
$newname = "";
for ( $c = 0; $c < 99; $c++ ) {
if (isset($rexname[$c])) { $newname .= $rexname[$c] . '~~'; }
else { $newname .= '~~'; }
}
if ( isset($REX_ACTION['VALUE'][1]) and $REX_ACTION['VALUE'][1] != '') {
$rexname = split('~~', $REX_ACTION['VALUE'][1]);
} else {
$REX_ACTION['VALUE'][1] = $newname;
}
?>
*
* --------------------------------------------------------------------
*
* Verwendete Redaxo-Variablen:
*
* REX_VALUE[1] rexnames
* rexname[0] -
* rexname[1] Anzeigetyp
* rexname[2] Schalter für Zufallsbild
* rexname[3] Schalter für Link in neuem Fenster
* rexname[4] optionale CSS-Klasse
* rexname[5] Bildbeschreibungen aus dem Medienpool (Bildergalerie)
* rexname[6] Pre-HTML
* rexname[7] Post-HTML
* rexname[8] Filter für das Bild (REDAXO 4.0.x)
* rexname[9] Filter für die Bildergalerie (REDAXO 4.0.x)
* rexname[10] Filter für das MouseOver-Bild (REDAXO 4.0.x)
* REX_VALUE[2] Wysiwyg-Text
* REX_VALUE[3] Bildunterschrift
* REX_VALUE[4] Medienpool-Kategorie
* REX_VALUE[5] Bildausrichtung
* REX_VALUE[6] Bild-Größe
* REX_VALUE[7] Adresse externer Link
* REX_VALUE[8] Bild-Größe der Galeriebilder
* REX_MEDIALIST[1] ausgewählte Bilder aus dem Medienpool
* REX_LINK_ID[2] interner Link
* REX_MEDIA_BUTTON[1] MouseOver-Bild
*
* --------------------------------------------------------------------
*
* Changelog:
* 23.07.2009 Version 1.8
* - Anpassung an REDAXO 4.2.x ($REX_USER -> $REX['USER'])
* - jetzt auch Kategorie + Einzelauswahl möglich
* - MouseOver-Bild möglich
* - leichte Anpassung des Backends
* - Code für Aktion rexnames angepasst ($rexname = rex_request...)
* - Funktion wysiwygimg_cleanWysiwygCode entfernt
* - Filter jetzt auch bei nur einem Bild, Popup-Größe angepasst falls maximale
* Größe vorgegeben ist
* 02.07.2008 Version 1.7
* - Action angepasst
* - markitUp als Editor möglich
* - erweitert für Addons Lytebox, Lightview
* 19.03.2008 Version 1.6
* - Anpassung an REDAXO 4.1.x
* - Bugfix bei Galerie mit Thickbox
* - Action angepasst
* 07.02.2008 Version 1.5
* - target="_blank" wird jetzt umgesetzt in onclick="window.open(this.href); return false;"
* - '<div align="center">' => '<div style="text-align:center;">'
* 10.12.2007 Version 1.4
* - Bild jetzt auch ohne Resize möglich
* - Größenangabe für die Galeriebilder möglich
* - PHP Warnings/Notices usw. entfernt
* - Anpassung an Redaxo-Versionen ab 3.01 inkl. 4.0.1
* - neue Option für Bildbeschreibungen (rexname[5])
* - neue Optionen PRE+POST-Html (rexname[6]+rexname[7])
* - neue Option Grafik-Filter (rexname[8], ab REDAXO 4.0.x)
* - neue Option Grafik-Filter für Bildergalerie (rexname[9], ab REDAXO 4.0.x)
* - CSS überarbeitet, IE7-Hack wg. Rollbalken
* - erweitert für Addons jQueryLightbox, Shadowbox
* - Backend überarbeitet
* 25.09.2007 Version 1.3
* INPUT-Modul
* - Anpassung an Redaxo 3.01 und 3.11
* - Anpassung Modulkonfiguration
* OUTPUT-Modul
* - Anpassung an Redaxo 3.01 und 3.11
* - Keine Ausgabe wenn kein Text und keine Bilder ausgewählt
* 22.09.2007 Version 1.2
* INPUT-Modul
* - Anpassung der Auswahl Medienpool-Kategorie an Redaxo 3.2.x und 3.3.x
* - Anpassung des WYSIWYG-Editors an Redaxo 3.2.x und 3.3.x
* - Bildervorschau jetzt unter dem REX_MEDIALIST_BUTTON
* - neue Option Zufallsbild anzeigen
* OUTPUT-Modul
* - Im Backend keine Links
* - Zufallsbild anzeigen
* 13.08.2007 Version 1.1
* INPUT-Modul
* - rexnames[] für weitere Optionen
* - Media-List statt Media-Button (mehrere Bilder möglich)
* - Medienpool-Kategorie als Bilderquelle auswählen (inkl. Zugriffs-Berechtigungen)
* - Erweitert um Popupimg/Lightbox/Thickbox/Greybox/Slimbox
* OUTPUT-Modul
* - rexnames[] für weitere Optionen
* - Erweitert um Popupimg/Lightbox/Thickbox/Greybox/Slimbox
* 13.11.2006 Version 1.0 Erste Version
*
* --------------------------------------------------------------------
*/
unset($rxmodule);
$rxmodule['moduleversion'] = 'WYSIWYGImage 1.8';
// REDAXO-Version
$rxmodule['rexversion'] = isset($REX['VERSION']) ? $REX['VERSION'] . $REX['SUBVERSION'] : $REX['version'] . $REX['subversion'];
/**
* markitUp statt TiniMCE für das Textfeld (ab Redaxo 4.0)
* auch im Output-Modul auf true setzen!
*/
$rxmodule['markitup'] = false;
/**
* Darstellungsmöglichkeiten für das Bild
*/
$rxmodule['myimgpos'] = array(
"im Text links (Textumfluss)",
"im Text rechts (Textumfluss)",
"links vom Text",
"rechts vom Text",
"links über dem Text",
"mittig über dem Text",
"rechts über dem Text",
"links unter dem Text",
"mittig unter dem Text",
"rechts unter dem Text"
);
/**
* Werte übernehmen
*/
$rxmodule['rexname'] = split('~~', "REX_VALUE[1]");
$rxmodule['rexnames_inuse'] = count($rxmodule['rexname']) > 1;
if (!$rxmodule['rexnames_inuse']) {
$rxmodule['rexname'] = array_fill(0, 99, '');
}
// ausgewählte Bilder aus dem Medienpool
$rxmodule['imagelist'] = explode(',', trim("REX_MEDIALIST[1]"));
// Bildtitel
$rxmodule['imgtitle'] = stripslashes(trim("REX_VALUE[3]"));
// Bildausrichtung
$rxmodule['imgpos'] = trim("REX_VALUE[5]");
if (trim($rxmodule['imgpos']) == "") {
$rxmodule['imgpos'] = '0';
}
// Thumbnail-Größe
$rxmodule['imgsize'] = trim("REX_VALUE[6]");
if ( trim($rxmodule['imgsize']) <> '') {
if ( !in_array(substr($rxmodule['imgsize'], 0, 1), array('a', 'h', 'w')) ) {
$rxmodule['imgsize'] = 'w' . $rxmodule['imgsize'];
}
}
// Bild-Größe der Galeriebilder
$rxmodule['galimgsize'] = trim("REX_VALUE[8]");
if ( trim($rxmodule['galimgsize']) <> '') {
if ( !in_array(substr($rxmodule['galimgsize'], 0, 1), array('a', 'h', 'w')) ) {
$rxmodule['galimgsize'] = 'w' . $rxmodule['galimgsize'];
}
}
// Anzeigetyp
$rxmodule['displaytype'] = trim($rxmodule['rexname']['1']);
if ($rxmodule['displaytype'] == '') {
$rxmodule['displaytype'] = 'showonly';
}
// interner Link
$rxmodule['intlink'] = "REX_LINK_ID[2]";
$rxmodule['intlinkurl'] = rex_GetUrl($rxmodule['intlink']);
// externer Link
$rxmodule['extlink'] = trim("REX_VALUE[7]");
// Zufallsbild
$rxmodule['randompic'] = trim($rxmodule['rexname'][2]);
// Link in neuem Fenster?
$rxmodule['newwindow'] = trim($rxmodule['rexname'][3]);
// CSS-Klasse
$rxmodule['cssclass'] = trim($rxmodule['rexname'][4]);
// Bildbeschreibungen aus dem Medienpool
$rxmodule['imgdesc'] = trim($rxmodule['rexname'][5]);
// Pre + Post-HTML
$rxmodule['prehtml'] = stripslashes(trim($rxmodule['rexname'][6]));
$rxmodule['posthtml'] = stripslashes(trim($rxmodule['rexname'][7]));
// Filter für das Bild (ab REDAXO 4.0.x)
$rxmodule['filter'] = trim($rxmodule['rexname'][8]);
// Filter für die Bildergalerie (ab REDAXO 4.0.x)
$rxmodule['galfilter'] = trim($rxmodule['rexname'][9]);
// Filter für das MouseOver-Bild (ab REDAXO 4.0.x)
$rxmodule['overfilter'] = trim($rxmodule['rexname'][10]);
?>
<table width="98%" border="0" cellpadding="0" cellspacing="3">
<tr>
<td><strong style="display:block;width:185px;">Text:</strong></td>
<td width="100%" align="right"><strong style="display:block;width:370px;">[ <?php echo $rxmodule['moduleversion']; ?> ]</strong></td>
</tr>
<tr>
<td colspan="2">
<?php
// Die folgenden 3 Zeilen dürfen keine führenden Leerzeichen enthalten!
$wysiwigvalue =<<<TEXT
REX_VALUE[2]
TEXT;
if (!$rxmodule['markitup']) {
if ( in_array($rxmodule['rexversion'], array('3.01', '3.11', '32')) ) { // REDAXO 3.2.x, REDAXO 3.01, REDAXO 3.11
$rxmodule['wysiwig'] = new rex_wysiwyg_editor();
/*
// Redaxo 3.2 Standard wysiwyg-Einstellungen
$rxmodule['wysiwig']->buttonrow1 = "styleselect,separator, bold,italic,separator,bullist,numlist,image";
$rxmodule['wysiwig']->buttonrow2 = "link,linkHack,unlink, insertEmail,separator,removeformat,pasteRichtext,code";
$rxmodule['wysiwig']->buttonrow3 = "tablecontrols, separator, visualaid";
$rxmodule['wysiwig']->buttonrow4 = "rowseparator, formatselect,fontselect,fontsizeselect,forecolor,charmap";
*/
$rxmodule['wysiwig']->buttonrow1 = "cut, copy, paste, pastetext, pasteword, separator, justifyleft, justifycenter, justifyright, justifyfull, separator, bullist, numlist, separator, link, linkHack, unlink, insertEmail, separator, image, hr, separator, cleanup, removeformat, code";
$rxmodule['wysiwig']->buttonrow2 = "bold, italic, underline, forecolor, backcolor, charmap, formatselect, separator, tablecontrols, visualaid";
$rxmodule['wysiwig']->buttonrow3 = "empty";
$rxmodule['wysiwig']->buttonrow4 = "empty";
$rxmodule['wysiwig']->stylesheet = $REX['HTDOCS_PATH'] . "files/wysiwyg.css";
$rxmodule['wysiwig']->content = $wysiwigvalue;
$rxmodule['wysiwig']->height = 220;
$rxmodule['wysiwig']->id = 2;
$rxmodule['wysiwig']->show();
}
if ( in_array($rxmodule['rexversion'], array('40', '41', '42')) ) { // REDAXO 4.0.x, 4.1.x, 4.2.x
if (class_exists('rexTiny2Editor')) {
$rxmodule['wysiwig'] = new rexTiny2Editor();
//$rxmodule['wysiwig']->buttons1 = "cut, copy, paste, pastetext, pasteword, separator, justifyleft, justifycenter, justifyright, justifyfull, separator, bullist, numlist, separator, link, linkHack, unlink, insertEmail, separator, image, hr, separator, cleanup, removeformat, code";
//$rxmodule['wysiwig']->buttons2 = "bold, italic, underline, forecolor, backcolor, charmap, formatselect, separator, tablecontrols, visualaid";
$rxmodule['wysiwig']->buttons3 = "";
$rxmodule['wysiwig']->buttons4 = "";
$rxmodule['wysiwig']->editorCSS = $REX['HTDOCS_PATH'] . "files/wysiwyg.css";
$rxmodule['wysiwig']->content = $wysiwigvalue;
$rxmodule['wysiwig']->id = 2;
$rxmodule['wysiwig']->show();
} else {
echo '<br /><font color="#cc0000"><strong>Klasse rexTiny2Editor existiert nicht!<br />Eventuell ist das Addon TinyMCE nicht installiert!?</strong></font>';
}
}
}
if ($rxmodule['markitup'] === true) {
echo '<textarea name="VALUE[2]" class="markitup-text" cols="80" rows="10">'.$wysiwigvalue.'</textarea>';
if (class_exists('a287_markitup')) {
/* Für REDAXO 4.1
a287_markitup::markitup('textarea.markitup-text',
'h3,h4,h5,separator,bold,italic,separator,listbullet,listnumeric,separator,intlink,extlink,separator,mailtolink,separator,filelink',
'540','380'
);
*/
/* Für REDAXO 4.2.x */
a287_markitup::markitup('textarea.markitup-text',
'h1,h2,h3,h4,h5,h6,separator,alignleft,alignright,aligncenter,alignjustify,separator,bold,italic,stroke,underline,superscript,subscript,table,separator,listbullet,listnumeric,separator,image,linkmedia,separator,linkintern,linkextern,linkmailto,separator,blockquote,code,separator,clean,separator,preview',
'700','400'
);
} else {
echo '<br /><font color="#cc0000"><strong>Klasse a287_markitup existiert nicht!<br />Eventuell ist das Addon markitup nicht installiert!?</strong></font>';
}
}
?>
</td>
</tr>
<tr>
<td> </td><td> </td>
</tr>
<tr>
<td colspan="2" valign="top">
<strong>Bild(er) auswählen ...</strong><br />
<em>Wenn mehrere Bilder oder eine Medienpool-Kategorie ausgewählt werden wird nur das erste Bild bzw. ein Zufallsbild angezeigt!
Die weiteren Bilder können nur mit zusätzlichen Addons angzeigt werden (z.B. Lightbox).</em><br />
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 schließen" title="Vorschau schließen" /></div>
</td>
</tr>
<tr>
<td valign="top"><strong>... oder Medienpool-Kategorie mit Bildern auswählen</strong></td>
<td valign="top">
<?php
// Zugriffsberechtigungen für Medienpool
$PERMALL = false;
if (isset($REX['USER'])) {
if ($REX['USER']->isValueOf("rights","admin[]") or $REX['USER']->isValueOf("rights","media[0]")) $PERMALL = true;
}
if (isset($REX_USER)) {
if ($REX_USER->isValueOf("rights","admin[]") or $REX_USER->isValueOf("rights","media[0]")) $PERMALL = true;
$REX['USER'] = $REX_USER;
}
$GLOBALS['PERMALL'] = $PERMALL;
// Select-Options
if (!function_exists('wysiwygimg_add_mediacat_options_wperm')) {
function wysiwygimg_add_mediacat_options_wperm( $rxmodule, &$select, &$mediacat, &$mediacat_ids, $groupName = '') {
global $PERMALL, $REX;
if(empty($mediacat)) return;
$mname = $mediacat->getName();
$mediacat_ids[] = $mediacat->getId();
if ( in_array($rxmodule['rexversion'], array('3.01', '3.11', '32')) ) { // REDAXO 3.2.x, REDAXO 3.01, REDAXO 3.11
if ($PERMALL || $REX['USER']->isValueOf("rights","media[".$mediacat->getId()."]")) $select->add_option($mname,$mediacat->getId(), $mediacat->getId(),$mediacat->getParentId());
}
if ( in_array($rxmodule['rexversion'], array('40', '41', '42')) ) { // REDAXO 4.0.x, 4.1.x, 4.2.x
if ($PERMALL || $REX['USER']->isValueOf("rights","media[".$mediacat->getId()."]")) $select->addOption($mname,$mediacat->getId(), $mediacat->getId(),$mediacat->getParentId());
}
$childs = $mediacat->getChildren();
if (is_array($childs)) {
foreach ( $childs as $child) {
wysiwygimg_add_mediacat_options_wperm( $rxmodule, $select, $child, $mediacat_ids, $mname);
}
}
}
} // end function_exists
// Select aus Medienpool-Kategorien erstellen REDAXO 3.2, REDAXO 3.01, REDAXO 3.11
if ( in_array($rxmodule['rexversion'], array('3.01', '3.11', '32')) ) {
$sel_media = new select;
$sel_media->set_style('width:98%;');
$sel_media->set_size(1);
$sel_media->set_name("VALUE[4]");
$sel_media->set_id("idVALUE4");
$sel_media->add_option($I18N->msg('pool_kats_no'), "0");
$sel_media->set_selected("REX_VALUE[4]");
$mediacat_ids = array();
if ($rootCats = OOMediaCategory::getRootCategories()) {
foreach( $rootCats as $rootCat) {
wysiwygimg_add_mediacat_options_wperm($rxmodule, $sel_media, $rootCat, $mediacat_ids);
}
}
echo $sel_media->out();
}
// Select aus Medienpool-Kategorien erstellen REDAXO 4.0.x, 4.1.x, 4.2.x
if ( in_array($rxmodule['rexversion'], array('40', '41', '42')) ) {
$sel_media = new rex_select;
$sel_media->setStyle('width:98%;');
$sel_media->setSize(1);
$sel_media->setName("VALUE[4]");
$sel_media->setId("idVALUE4");
$sel_media->addOption($I18N->msg('pool_kats_no'), "0");
$sel_media->setSelected("REX_VALUE[4]");
$mediacat_ids = array();
if ($rootCats = OOMediaCategory::getRootCategories()) {
foreach( $rootCats as $rootCat) {
wysiwygimg_add_mediacat_options_wperm($rxmodule, $sel_media, $rootCat, $mediacat_ids);
}
}
echo $sel_media->show();
}
?>
</td>
</tr>
<tr>
<td valign="top"><strong>maximale Bildgröße</strong></td>
<td valign="top">
<input type="text" size="7" style="width:70px;" name="VALUE[6]" value="<?php echo $rxmodule['imgsize']; ?>" />
<br />(w=Breite, h=Höhe, a=die längere Seite, z.B.: w128)
</td>
</tr>
<tr>
<td> </td><td> </td>
</tr>
<tr>
<td valign="top"><strong>Bildausrichtung zum Text</strong></td>
<td valign="top">
<select name="VALUE[5]" style="width:98%;">
<?php
foreach ($rxmodule['myimgpos'] as $key => $value) {
echo '<option value="'.$key.'" ';
if ( $rxmodule['imgpos']=="$key" ) {
echo 'selected="selected" ';
}
echo '>'.$value.'</option>';
}
?>
</select>
</td>
</tr>
<tr>
<td valign="top"><strong>Bildunterschrift</strong></td>
<td valign="top">
<textarea cols="50" rows="2" title="Doppelklick für mehr/weniger Zeilen" ondblclick="this.rows!=8 ? this.rows=8 : this.rows=2;" name="VALUE[3]" style="width:98%;"><?php echo $rxmodule['imgtitle'] ;?></textarea>
</td>
</tr>
<?php if ( in_array($rxmodule['rexversion'], array('40', '41', '42')) ) { // REDAXO 4.0.x, 4.1.x, 4.2.x ?>
<tr>
<td valign="top"><strong>Grafik-Filter für das Bild</strong></td>
<td valign="top">
<input type="text" size="50" style="width:98%;" name="rexname[8]" value="<?php echo $rxmodule['filter']; ?>" />
mehrere Filter in der gewünschten Reihenfolge durch Komma getrennt<br />
Vorhandene Filter:
<?php
$dir = $REX['INCLUDE_PATH'] . '/addons/image_resize/filters/';
$rxmodule['availablefilters'] = '';
$k = '';
if ( $dh = @opendir($dir) ) {
while ( ($file = @readdir($dh)) !== false ) {
if ( strstr($file, '.inc.php') and is_file($dir.$file) ) {
$va = explode('.', $file);
$rxmodule['availablefilters'] .= $k . $va[1];
$k = ', ';
}
}
@closedir($dh);
echo $rxmodule['availablefilters'];
}
?>
</td>
</tr>
<?php } ?>
<tr>
<td> </td><td> </td>
</tr>
<?php
// Anzeigetyp
$rxmodule['options']['showonly'] = 'Bild nur anzeigen';
if ( file_exists($REX['HTDOCS_PATH'].'files/popupimg.php') ) {
$rxmodule['options']['popup'] = 'Bild bei Klick im Popup anzeigen';
} else {
$rxmodule['options']['popup'] = 'Bild bei Klick in neuem Fenster anzeigen';
}
if (class_exists('OOAddon')) {
if ( OOAddon::isActivated('greybox') ) {
$rxmodule['options']['greybox'] = 'Bild(er) bei Klick mit Greybox anzeigen';
}
if ( OOAddon::isActivated('jquerylightbox') ) {
$rxmodule['options']['jquerylightbox'] = 'Bild(er) bei Klick mit jQueryLightbox anzeigen';
}
if ( OOAddon::isActivated('lightbox') ) {
$rxmodule['options']['lightbox'] = 'Bild(er) bei Klick mit Lightbox anzeigen';
}
if ( OOAddon::isActivated('lightview') ) {
$rxmodule['options']['lightview'] = 'Bild(er) bei Klick mit Lightview anzeigen';
}
if ( OOAddon::isActivated('lytebox') ) {
$rxmodule['options']['lytebox'] = 'Bild(er) bei Klick mit Lytebox anzeigen';
}
if ( OOAddon::isActivated('pho2') ) {
$rxmodule['options']['pho2'] = 'Bild(er) bei Klick mit Pho2 anzeigen';
}
if ( OOAddon::isActivated('shadowbox') ) {
$rxmodule['options']['shadowbox'] = 'Bild(er) bei Klick mit Shadowbox anzeigen';
}
if ( OOAddon::isActivated('slimbox') ) {
$rxmodule['options']['slimbox'] = 'Bild(er) bei Klick mit Slimbox anzeigen';
}
if ( OOAddon::isActivated('thickbox') ) {
$rxmodule['options']['thickbox'] = 'Bild(er) bei Klick mit Thickbox anzeigen';
}
} else {
if (file_exists($REX['MEDIAFOLDER'].'/greybox')) {
$rxmodule['options']['greybox'] = 'Bild(er) bei Klick mit Greybox anzeigen';
}
if (file_exists($REX['MEDIAFOLDER'].'/jquerylightbox')) {
$rxmodule['options']['jquerylightbox'] = 'Bild(er) bei Klick mit jQueryLightbox anzeigen';
}
if (file_exists($REX['MEDIAFOLDER'].'/lightbox')) {
$rxmodule['options']['lightbox'] = 'Bild(er) bei Klick mit Lightbox anzeigen';
}
if (file_exists($REX['MEDIAFOLDER'].'/lightview')) {
$rxmodule['options']['lightview'] = 'Bild(er) bei Klick mit Lightview anzeigen';
}
if (file_exists($REX['MEDIAFOLDER'].'/lytebox')) {
$rxmodule['options']['lytebox'] = 'Bild(er) bei Klick mit Lytebox anzeigen';
}
if (file_exists($REX['MEDIAFOLDER'].'/pho2')) {
$rxmodule['options']['pho2'] = 'Bild(er) bei Klick mit Pho2 anzeigen';
}
if (file_exists($REX['MEDIAFOLDER'].'/shadowbox')) {
$rxmodule['options']['shadowbox'] = 'Bild(er) bei Klick mit Shadowbox anzeigen';
}
if (file_exists($REX['MEDIAFOLDER'].'/slimbox')) {
$rxmodule['options']['slimbox'] = 'Bild(er) bei Klick mit Slimbox anzeigen';
}
if (file_exists($REX['MEDIAFOLDER'].'/thickbox')) {
$rxmodule['options']['thickbox'] = 'Bild(er) bei Klick mit Thickbox anzeigen';
}
}
?>
<tr>
<td><strong>Anzeigetyp</strong><br /></td>
<td>
<select name="rexname[1]" style="width:98%;">
<?php
foreach ($rxmodule['options'] as $key => $value) {
echo '<option value="'.$key.'" ';
if ( $rxmodule['displaytype']=="$key" ) {
echo 'selected="selected" ';
}
echo '>'.$value.'</option>';
}
?>
</select>
</td>
</tr>
<tr>
<td> </td><td> </td>
</tr>
<tr>
<td><strong>oder bei Klick interner Link</strong></td>
<td>REX_LINK_BUTTON[2]</td>
</tr>
<tr>
<td><strong>oder bei Klick externer Link</strong></td>
<td><input type="text" size="50" style="width:98%;" name="VALUE[7]" value="<?php echo $rxmodule['extlink']; ?>" /></td>
</tr>
<tr>
<td><strong>Link in neuem Fenster öffnen?</strong></td>
<td>
<select name="rexname[3]" style="width:75px;">
<?php
foreach (array(0 => 'nein', 1 => 'ja') as $key => $value) {
echo '<option value="' . $key . '" ';
if ( $rxmodule['newwindow'] == "$key" ) {
echo 'selected="selected" ';
}
echo '>' . $value . '</option>';
}
?>
</select>
</td>
</tr>
<tr>
<td><strong style="display:block;width:185px;"> </strong></td>
<td><strong style="display:block;width:370px;"> </strong></td>
</tr>
</table>
<a id="togglemoduleplusoptions" style="cursor:pointer;"><strong>[ Mehr Optionen ein/ausblenden ]</strong></a><br />
<div id="moduleplusoptions" style="display:none;">
<table width="98%" border="0" cellpadding="0" cellspacing="3">
<tr>
<td><strong style="display:block;width:185px;"> </strong></td>
<td width="100%"> </td>
</tr>
<tr>
<td valign="top"><strong>Bildbeschriftungen aus dem Medienpool</strong></td>
<td valign="top">
<select name="rexname[5]" style="width:98%;">
<?php
foreach (array('keine','Titel','Beschreibung','Copyright','Titel + Beschreibung','Titel + Copyright', 'Beschreibung + Copyright', 'Titel + Beschreibung + Copyright') as $key => $value) {
echo '<option value="' . $key . '" ';
if ( $rxmodule['imgdesc'] == "$key" ) {
echo 'selected="selected" ';
}
echo '>' . $value . '</option>';
}
?>
</select>
<br />
Die Bildbeschriftungen werden als <em>title</em>-Attribut bei dem Bild bzw. bei den Bildlinks ausgegeben
</td>
</tr>
<tr>
<td valign="top"><strong>Bei mehreren Bildern Zufallsbild anzeigen</strong></td>
<td valign="top">
<select name="rexname[2]" style="width:75px;">
<?php
foreach (array(0 => 'nein', 1 => 'ja') as $key => $value) {
echo '<option value="' . $key . '" ';
if ( $rxmodule['randompic'] == "$key" ) {
echo 'selected="selected" ';
}
echo '>' . $value . '</option>';
}
?>
</select>
<br />(Galerie wird auch in zufälliger Reihenfolge angezeigt)
</td>
</tr>
<tr>
<td valign="top"><strong>maximale Bildgröße der Galeriebilder</strong></td>
<td valign="top">
<input type="text" size="7" style="width:70px;" name="VALUE[8]" value="<?php echo $rxmodule['galimgsize']; ?>" />
<br />(w=Breite, h=Höhe, a=die längere Seite, z.B.: w600)
</td>
</tr>
<?php if ( in_array($rxmodule['rexversion'], array('40', '41', '42')) ) { // REDAXO 4.0.x, 4.1.x, 4.2.x ?>
<tr>
<td valign="top"><strong>Grafik-Filter für die Galeriebilder</strong></td>
<td valign="top">
<input type="text" size="50" style="width:98%;" name="rexname[9]" value="<?php echo $rxmodule['galfilter']; ?>" />
mehrere Filter in der gewünschten Reihenfolge durch Komma getrennt<br />
Vorhandene Filter: <?php echo $rxmodule['availablefilters']; ?>
</td>
</tr>
<?php } ?>
<tr>
<td> </td><td> </td>
</tr>
<tr>
<td valign="top" style="vertical-align:top;"><strong>MouseOver-Bild</strong></td>
<td xvalign="top">REX_MEDIA_BUTTON[1]
(das MouseOver-Bild sollte die gleichen Ausmasse des Bildes haben)
</td>
</tr>
<tr>
<td valign="top"><strong>Filter für das MouseOver-Bild</strong></td>
<td valign="top">
<input type="text" size="50" style="width:98%;" name="rexname[10]" value="<?php echo $rxmodule['overfilter']; ?>" />
mehrere Filter in der gewünschten Reihenfolge durch Komma getrennt<br />
Vorhandene Filter: <?php echo $rxmodule['availablefilters']; ?>
</td>
</tr>
<tr>
<td> </td><td> </td>
</tr>
<tr>
<td valign="top"><strong>Prefix für CSS-Klassen</strong></td>
<td valign="top"><input type="text" size="50" style="width:98%;" name="rexname[4]" value="<?php echo $rxmodule['cssclass']; ?>" />
<br />(default wysiwygimg)
</td>
</tr>
<tr>
<td valign="top"><strong>Pre-HTML</strong></td>
<td valign="top">
<textarea rows="2" title="Doppelklick für mehr/weniger Zeilen" ondblclick="this.rows!=8 ? this.rows=8 : this.rows=2;" style="width:98%;" name="rexname[6]"><?php echo $rxmodule['prehtml']; ?></textarea>
</td>
</tr>
<tr>
<td valign="top"><strong>Post-HTML</strong></td>
<td valign="top">
<textarea rows="2" title="Doppelklick für mehr/weniger Zeilen" ondblclick="this.rows!=8 ? this.rows=8 : this.rows=2;" style="width:98%;" name="rexname[7]"><?php echo $rxmodule['posthtml']; ?></textarea>
</td>
</tr>
</table>
</div>
<?php
unset($rxmodule);
?>
<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("togglemoduleplusoptions"), "click", rex_toggle_plusoptions);
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>
Code: Alles auswählen
<?php
/**
* --------------------------------------------------------------------
*
* Modul-Output: WYSIWYGImage, wysiwyg-Text mit Bild/Bildergalerie
* Version: 1.8, 23.07.2009
*
* Autor: Andreas Eberhard, andreas.eberhard@gmail.com
* http://rex.andreaseberhard.de
*
* Features:
* - Bild zum Text positionierbar
* - TinyMCE oder markitUp als Editor
* - Anzeige eines Zufallsbildes möglich
* - Bildergalerie über zusätzliches Addon möglich
*
* --------------------------------------------------------------------
*
* Das Modul benötigt die Aktion "rexnames", bei Presave-Action ADD+EDIT
* und bei Postsave-Action ADD+EDIT (REDAXO 4.x)
* [POST|ADD|EDIT] und [PRE|ADD|EDIT] bei Redaxo 3.x
*
* PHP-Code für Aktion "rexnames" (### entfernen!):
*
<###?php
$rexname = rex_request("rexname","array"); // ab REDAXO 4.2.1
$newname = "";
for ( $c = 0; $c < 99; $c++ ) {
if (isset($rexname[$c])) { $newname .= $rexname[$c] . '~~'; }
else { $newname .= '~~'; }
}
if ( isset($REX_ACTION['VALUE'][1]) and $REX_ACTION['VALUE'][1] != '') {
$rexname = split('~~', $REX_ACTION['VALUE'][1]);
} else {
$REX_ACTION['VALUE'][1] = $newname;
}
?###>
*
* --------------------------------------------------------------------
*
* Verwendete Redaxo-Variablen:
*
* REX_VALUE[1] rexnames
* rexname[0] -
* rexname[1] Anzeigetyp
* rexname[2] Schalter für Zufallsbild
* rexname[3] Schalter für Link in neuem Fenster
* rexname[4] optionale CSS-Klasse
* rexname[5] Bildbeschreibungen aus dem Medienpool (Bildergalerie)
* rexname[6] Pre-HTML
* rexname[7] Post-HTML
* rexname[8] Filter für das Bild (REDAXO 4.0.x)
* rexname[9] Filter für die Bildergalerie (REDAXO 4.0.x)
* rexname[10] Filter für das MouseOver-Bild (REDAXO 4.0.x)
* REX_VALUE[2] Wysiwyg-Text
* REX_VALUE[3] Bildunterschrift
* REX_VALUE[4] Medienpool-Kategorie
* REX_VALUE[5] Bildausrichtung
* REX_VALUE[6] Bild-Größe
* REX_VALUE[7] Adresse externer Link
* REX_VALUE[8] Bild-Größe der Galeriebilder
* REX_MEDIALIST[1] ausgewählte Bilder aus dem Medienpool
* REX_LINK_ID[2] interner Link
* REX_MEDIA_BUTTON[1] MouseOver-Bild
*
* --------------------------------------------------------------------
*
* Changelog:
* 23.07.2009 Version 1.8
* - Anpassung an REDAXO 4.2.x ($REX_USER -> $REX['USER'])
* - jetzt auch Kategorie + Einzelauswahl möglich
* - MouseOver-Bild möglich
* - leichte Anpassung des Backends
* - Code für Aktion rexnames angepasst ($rexname = rex_request...)
* - Funktion wysiwygimg_cleanWysiwygCode entfernt
* - Filter jetzt auch bei nur einem Bild, Popup-Größe angepasst falls maximale
* Größe vorgegeben ist
* 02.07.2008 Version 1.7
* - Action angepasst
* - markitUp als Editor möglich
* - erweitert für Addons Lytebox, Lightview
* 19.03.2008 Version 1.6
* - Anpassung an REDAXO 4.1.x
* - Bugfix bei Galerie mit Thickbox
* - Action angepasst
* 07.02.2008 Version 1.5
* - target="_blank" wird jetzt umgesetzt in onclick="window.open(this.href); return false;"
* - '<div align="center">' => '<div style="text-align:center;">'
* 10.12.2007 Version 1.4
* - Bild jetzt auch ohne Resize möglich
* - Größenangabe für die Galeriebilder möglich
* - PHP Warnings/Notices usw. entfernt
* - Anpassung an Redaxo-Versionen ab 3.01 inkl. 4.0.1
* - neue Option für Bildbeschreibungen (rexname[5])
* - neue Optionen PRE+POST-Html (rexname[6]+rexname[7])
* - neue Option Grafik-Filter (rexname[8], ab REDAXO 4.0.x)
* - neue Option Grafik-Filter für Bildergalerie (rexname[9], ab REDAXO 4.0.x)
* - CSS überarbeitet, IE7-Hack wg. Rollbalken
* - erweitert für Addons jQueryLightbox, Shadowbox
* - Backend überarbeitet
* 25.09.2007 Version 1.3
* INPUT-Modul
* - Anpassung an Redaxo 3.01 und 3.11
* - Anpassung Modulkonfiguration
* OUTPUT-Modul
* - Anpassung an Redaxo 3.01 und 3.11
* - Keine Ausgabe wenn kein Text und keine Bilder ausgewählt
* 22.09.2007 Version 1.2
* INPUT-Modul
* - Anpassung der Auswahl Medienpool-Kategorie an Redaxo 3.2.x und 3.3.x
* - Anpassung des WYSIWYG-Editors an Redaxo 3.2.x und 3.3.x
* - Bildervorschau jetzt unter dem REX_MEDIALIST_BUTTON
* - neue Option Zufallsbild anzeigen
* OUTPUT-Modul
* - Im Backend keine Links
* - Zufallsbild anzeigen
* 13.08.2007 Version 1.1
* INPUT-Modul
* - rexnames[] für weitere Optionen
* - Media-List statt Media-Button (mehrere Bilder möglich)
* - Medienpool-Kategorie als Bilderquelle auswählen (inkl. Zugriffs-Berechtigungen)
* - Erweitert um Popupimg/Lightbox/Thickbox/Greybox/Slimbox
* OUTPUT-Modul
* - rexnames[] für weitere Optionen
* - Erweitert um Popupimg/Lightbox/Thickbox/Greybox/Slimbox
* 13.11.2006 Version 1.0 Erste Version
*
* --------------------------------------------------------------------
*/
unset($rxmodule);
/**
* markitUp statt TiniMCE für das Textfeld (ab Redaxo 4.0)
* auch im Output-Modul auf true setzen!
*/
$rxmodule['markitup'] = false;
/**
* Im Backend für Vorschau Standard-CSS ausgeben
*/
if ( ($REX['REDAXO'] == '1') and function_exists('rex_register_extension') ) {
rex_register_extension('OUTPUT_FILTER', 'WYSIWYGImage_opf');
if (!function_exists('WYSIWYGImage_opf')) {
function WYSIWYGImage_opf($params) {
$content = $params['subject'];
$WYSIWYGImage_css =<<<END
<style type="text/css">
/**
* Modul WYSIWYGImage, Wysiwyg-Text mit Bild/Bildergalerie
*/
div.wysiwygimg {}
/* ----- Hack only for IE 7 ----- */
*+html div.wysiwygimg {overflow:hidden;}
.wysiwygimg .wysiwygimgclear {clear:both; display:block; font-size:1px; line-height:0px; margin:0; padding:0; position:relative;}
/* Text */
.wysiwygimg .wysiwygimgtext {}
/* Bild und Link */
.wysiwygimg img.wysiwygimg {border:0; margin:1px;}
.wysiwygimg img.wysiwygimg {border:solid 5px #f5f5f5; padding:1px;}
.wysiwygimg a.wysiwygimg img {border:0;padding:0px;vertical-align:top; margin:1px;}
.wysiwygimg a.wysiwygimg, .wysiwygimg a.wysiwygimg:link {border:solid 5px #f6f6f6; display:table; display:inline-block; line-height:0.0em;}
.wysiwygimg a.wysiwygimg:visited {}
.wysiwygimg a.wysiwygimg:hover {border:solid 5px #e4e4e4;}
.wysiwygimg a.wysiwygimg:focus {border:solid 5px #e4e4e4;}
.wysiwygimg a.wysiwygimg:active {border:solid 5px #e4e4e4;}
/* Bildunterschrift */
.wysiwygimg .wysiwygimgtitle {color:#666; font-size:0.8em; font-style:italic; margin:2px 0px;}
/* Wrapper-Classe um Bild und Bildunterschrift*/
.wysiwygimg .wysiwygimgwrap {}
/* Bild links im Text (Textumfluss) */
.wysiwygimg .wysiwygimgleft {float:left; margin:0 1.0em 0 0;}
/* Bild rechts im Text (Textumfluss) */
.wysiwygimg .wysiwygimgright {float: right; margin:0 0 0 1.0em;}
/* Bild oben links */
.wysiwygimg .wysiwygimgtopleft {float:left; margin-bottom:0.5em;}
/* Bild oben rechts */
.wysiwygimg .wysiwygimgtopright {float:right; margin-bottom:0.5em;}
/* Bild oben mittig */
.wysiwygimg .wysiwygimgtopcenter {margin-bottom:0.5em; text-align:center;}
.wysiwygimg .wysiwygimgtopcenter a.wysiwygimg {margin:0 auto;}
/* Bild unten links */
.wysiwygimg .wysiwygimgbottomleft {float:left; margin-top:0.5em;}
/* Bild unten rechts */
.wysiwygimg .wysiwygimgbottomright {float:right; margin-top:0.5em;}
/* Bild unten mittig */
.wysiwygimg .wysiwygimgbottomcenter {margin-top:0.5em; text-align:center;}
.wysiwygimg .wysiwygimgbottomcenter a.wysiwygimg {margin:0 auto;}
.wysiwygimg .wysiwygimgbottomcenter img.wysiwygimg {margin:0 auto;}
/* Für Bilder links/rechts vom Text */
.wysiwygimg table {border-spacing: 0px; font-size:1.0em;}
.wysiwygimg td {vertical-align:top; font-size:1.0em;}
/* Bild links vom Text */
.wysiwygimg td.wysiwygimgleftcol {padding-right:1.0em;}
/* Bild rechts vom Text */
.wysiwygimg td.wysiwygimgrightcol {padding-left:1.0em;}
</style>
END;
return str_replace('</head>', "\n" . $WYSIWYGImage_css . "\n" . '</head>', $content);
}
}
}
/**
* --------------------------------------------------------------------
* Links für weitere Bilder aufbereiten
* --------------------------------------------------------------------
*/
if (!function_exists('wysiwygimg_imageLinks')) {
function wysiwygimg_imageLinks( &$rxmodule ) {
global $REX;
if (@count($rxmodule['imagelist']) < 2) { return; }
for ($i = 1; $i <= @count($rxmodule['imagelist'])-1; $i++) {
$rxmodule['media'] = OOMedia::getMediaByName($rxmodule['imagelist'][$i]);
if ($rxmodule['media']) {
$rxmodule['mediatitle'] = '';
if ( in_array($rxmodule['rexversion'], array('3.01', '3.11', '32')) ) { // REDAXO 3.2.x, REDAXO 3.01, REDAXO 3.11
$rxmodule['w_title'] = str_replace(array("\r\n", "\n", "\r"), ' ', $rxmodule['media']->getTitle());
$rxmodule['w_desc'] = str_replace(array("\r\n", "\n", "\r"), ' ', $rxmodule['media']->getDescription());
$rxmodule['w_copy'] = str_replace(array("\r\n", "\n", "\r"), ' ', $rxmodule['media']->getCopyright());
}
if ( in_array($rxmodule['rexversion'], array('40', '41', '42')) ) { // REDAXO 4.0.x, 4.1.x, 4.2.x
$rxmodule['w_title'] = str_replace(array("\r\n", "\n", "\r"), ' ', $rxmodule['media']->getValue('title'));
$rxmodule['w_desc'] = str_replace(array("\r\n", "\n", "\r"), ' ', $rxmodule['media']->getValue('description'));
$rxmodule['w_copy'] = str_replace(array("\r\n", "\n", "\r"), ' ', $rxmodule['media']->getValue('copyright'));
}
if ($rxmodule['imgdesc'] == '1') {
$rxmodule['mediatitle'] = $rxmodule['w_title'];
}
if ($rxmodule['imgdesc'] == '2') {
$rxmodule['mediatitle'] = $rxmodule['w_desc'];
}
if ($rxmodule['imgdesc'] == '3') {
$rxmodule['mediatitle'] = $rxmodule['w_copy'];
}
if ($rxmodule['imgdesc'] == '4') {
$rxmodule['mediatitle'] = $rxmodule['w_title'] . ' ' . $rxmodule['w_desc'];
}
if ($rxmodule['imgdesc'] == '5') {
$rxmodule['mediatitle'] = $rxmodule['w_title'] . ' ' . $rxmodule['w_copy'];
}
if ($rxmodule['imgdesc'] == '6') {
$rxmodule['mediatitle'] = $rxmodule['w_desc'] . ' ' . $rxmodule['w_copy'];
}
if ($rxmodule['imgdesc'] == '7') {
$rxmodule['mediatitle'] = $rxmodule['w_title'] . ' ' . $rxmodule['w_desc'] . ' ' . $rxmodule['w_copy'];
}
} else {
$rxmodule['mediatitle'] = '';
}
if ($rxmodule['mediatitle'] == '') {
$rxmodule['mediatitle'] = ' ';
}
$rxmodule['original'] = $REX['HTDOCS_PATH'] . 'files/' . $rxmodule['imagelist'][$i];
if (isset($rxmodule['galimgsize']) and ($rxmodule['galimgsize'] <> '') ) {
$rxmodule['resizeto'] = $rxmodule['galimgsize'];
$rxmodule['resizes'] = substr($rxmodule['resizeto'], 0, 1);
if ( !in_array(substr($rxmodule['resizes'], 0, 1), array('a', 'h', 'w')) ) {
$rxmodule['resizes'] = 'w';
}
$rxmodule['resizeto'] = str_replace( array('w', 'h', 'a'), '', $rxmodule['resizeto']);
$rxmodule['original'] = $REX['HTDOCS_PATH'] . "index.php?rex_resize=" . $rxmodule['resizeto'] . $rxmodule['resizes'] . "__" . $rxmodule['imagelist'][$i];
if ( $rxmodule['galfilter'] <> '') {
$va = explode(',', $rxmodule['galfilter']);
foreach( $va as $fi ) {
$rxmodule['original'] .= '&rex_filter[]=' . trim($fi);
}
}
}
$rxmodule['imghtml'] .= '';
if ($rxmodule['displaytype'] == "greybox" ) {
$rxmodule['imghtml'] .= '<a style="display:none;" rel="gb_imageset[gb' . $rxmodule['wysiwygid'] . ']" href="' . $rxmodule['original'] . '" title="' . $rxmodule['mediatitle'] . '">' . $rxmodule['imagelist'][$i] . '</a>';
}
if ($rxmodule['displaytype'] == "jquerylightbox" ) {
$rxmodule['imghtml'] .= '<a style="display:none;" rel="lightbox[jqlb' . $rxmodule['wysiwygid'] . ']" href="' . $rxmodule['original'] . '" title="' . $rxmodule['mediatitle'] . '">' . $rxmodule['imagelist'][$i] . '</a>';
}
if ($rxmodule['displaytype'] == "lightbox" ) {
$rxmodule['imghtml'] .= '<a style="display:none;" rel="lightbox[lb' . $rxmodule['wysiwygid'] . ']" href="' . $rxmodule['original'] . '" title="' . $rxmodule['mediatitle'] . '">' . $rxmodule['imagelist'][$i] . '</a>';
}
if ($rxmodule['displaytype'] == "lightview" ) {
$rxmodule['imghtml'] .= '<a style="display:none;" class="lightview" rel="gallery[lv' . $rxmodule['wysiwygid'] . ']" href="' . $rxmodule['original'] . '" title="' . $rxmodule['mediatitle'] . '">' . $rxmodule['imagelist'][$i] . '</a>';
}
if ($rxmodule['displaytype'] == "lytebox" ) {
$rxmodule['imghtml'] .= '<a style="display:none;" rel="lytebox[lb' . $rxmodule['wysiwygid'] . ']" href="' . $rxmodule['original'] . '" title="' . $rxmodule['mediatitle'] . '">' . $rxmodule['imagelist'][$i] . '</a>';
}
if ($rxmodule['displaytype'] == "pho2" ) {
$rxmodule['imghtml'] .= '<a style="display:none;" rel="pho2[pho2' . $rxmodule['wysiwygid'] . ']" href="' . $rxmodule['original'] . '" title="' . $rxmodule['mediatitle'] . '">' . $rxmodule['imagelist'][$i] . '</a>';
}
if ($rxmodule['displaytype'] == "shadowbox" ) {
$rxmodule['imghtml'] .= '<a style="display:none;" rel="shadowbox[sb' . $rxmodule['wysiwygid'] . ']" href="' . $rxmodule['original'] . '" title="' . $rxmodule['mediatitle'] . '">' . $rxmodule['imagelist'][$i] . '</a>';
}
if ($rxmodule['displaytype'] == "slimbox" ) {
$rxmodule['imghtml'] .= '<a style="display:none;" rel="lightbox[sb' . $rxmodule['wysiwygid'] . ']" href="' . $rxmodule['original'] . '" title="' . $rxmodule['mediatitle'] . '">' . $rxmodule['imagelist'][$i] . '</a>';
}
if ($rxmodule['displaytype'] == "thickbox" ) {
$rxmodule['imghtml'] .= '<a style="display:none;" class="thickbox" rel="tb' . $rxmodule['wysiwygid'] . '" href="' . $rxmodule['original'] . '" title="' . $rxmodule['mediatitle'] . '">' . $rxmodule['imagelist'][$i] . '</a>';
}
}
}
} // End function_exists
/**
* --------------------------------------------------------------------
* Start Modul-Ausgabe
* --------------------------------------------------------------------
*/
$rxmodule['moduleversion'] = 'WYSIWYGImage 1.8';
// REDAXO-Version
$rxmodule['rexversion'] = isset($REX['VERSION']) ? $REX['VERSION'] . $REX['SUBVERSION'] : $REX['version'] . $REX['subversion'];
$rxmodule['rexname'] = split("~~", "REX_VALUE[1]");
$rxmodule['rexnames_inuse'] = count($rxmodule['rexname']) > 1;
if (!$rxmodule['rexnames_inuse']) {
$rxmodule['rexname'] = array_fill(0, 99, '');
}
/**
* WYSIWYG-HTML in Variable übernehmen
*/
$rxmodule['htmlvalue'] =<<< EOT
REX_HTML_VALUE[2]
EOT;
$rxmodule['htmlvalue'] = trim($rxmodule['htmlvalue']);
if ($rxmodule['markitup'] === true) {
$textile = '';
$textile = htmlspecialchars_decode($rxmodule['htmlvalue']);
$textile = str_replace("<br />","",$textile);
$textile = rex_a79_textile($textile);
$textile = str_replace("###"," ",$textile);
$rxmodule['htmlvalue'] = $textile;
}
/**
* sonstige Werte übernehmen
*/
// Bildbeschreibung
$rxmodule['imgtitle'] = stripslashes(trim("REX_VALUE[3]"));
// Medienpool-Kategorie
$rxmodule['mediacat'] = trim("REX_VALUE[4]");
// Bildausrichtung
$rxmodule['imgpos'] = trim("REX_VALUE[5]");
if (trim($rxmodule['imgpos'])=="") {
$rxmodule['imgpos'] = '0';
}
// Thumbnail-Größe
$rxmodule['imgsize'] = trim("REX_VALUE[6]");
if ( trim($rxmodule['imgsize']) <> '') {
if ( !in_array(substr($rxmodule['imgsize'], 0, 1), array('a', 'h', 'w')) ) {
$rxmodule['imgsize'] = 'w' . $rxmodule['imgsize'];
}
}
// Bild-Größe der Galeriebilder
$rxmodule['galimgsize'] = trim("REX_VALUE[8]");
if ( trim($rxmodule['galimgsize']) <> '') {
if ( !in_array(substr($rxmodule['galimgsize'], 0, 1), array('a', 'h', 'w')) ) {
$rxmodule['galimgsize'] = 'w' . $rxmodule['galimgsize'];
}
}
// Anzeigetyp
$rxmodule['displaytype'] = trim($rxmodule['rexname'][1]);
// interner Link
$rxmodule['intlink'] = "REX_LINK_ID[2]";
$rxmodule['intlinkurl'] = rex_GetUrl($rxmodule['intlink']);
// externer Link
$rxmodule['extlink'] = trim("REX_VALUE[7]");
// Zufallsbild
$rxmodule['randompic'] = trim($rxmodule['rexname'][2]);
// Link in neuem Fenster?
$rxmodule['newwindow'] = trim($rxmodule['rexname'][3]);
// CSS-Klasse
$rxmodule['cssclass'] = trim($rxmodule['rexname'][4]);
if ( ($REX['REDAXO'] == '1') or (trim($rxmodule['cssclass'])=='') ) {
$rxmodule['cssclass'] = 'wysiwygimg';
}
// Bildbeschreibungen aus dem Medienpool
$rxmodule['imgdesc'] = trim($rxmodule['rexname'][5]);
// Pre + Post-HTML
$rxmodule['prehtml'] = stripslashes(trim($rxmodule['rexname'][6]));
$rxmodule['posthtml'] = stripslashes(trim($rxmodule['rexname'][7]));
// Filter für das Bild (ab REDAXO 4.0.x)
$rxmodule['filter'] = trim($rxmodule['rexname'][8]);
// Filter für die Bildergalerie (ab REDAXO 4.0.x)
$rxmodule['galfilter'] = trim($rxmodule['rexname'][9]);
// Filter für das MouseOver-Bild (ab REDAXO 4.0.x)
$rxmodule['overimage'] = trim('REX_FILE[1]');
// Filter für das MouseOver-Bild (ab REDAXO 4.0.x)
$rxmodule['overfilter'] = trim($rxmodule['rexname'][10]);
// damit das Modul mehrfach in einem Artikel verwendet werden kann
// wird hier eine Zufallszahl ermittelt!
srand((double)microtime()*1000000);
$rxmodule['wysiwygid'] = rand (100,900) . rand (100,900);
/**
* --------------------------------------------------------------------
* Bilder aus Medialist oder Medienpool-Kategorie ermitteln
* --------------------------------------------------------------------
*/
// Bilddateien aus Medialist
$rxmodule['imagelist'] = explode(',', trim("REX_MEDIALIST[1]"));
// Wenn eine Medienpool-Kategorie vorgegeben ist dann die Bilder aus dieser Kategorie verwenden
if (isset($rxmodule['mediacat']) and ($rxmodule['mediacat']<>'') and ($rxmodule['mediacat']<>'0')) {
$rxmodule['media'] = OOMediaCategory::getCategoryById($rxmodule['mediacat']);
if ($rxmodule['media']) {
$rxmodule['mediafiles'] = $rxmodule['media']->getFiles();
if (count($rxmodule['mediafiles']) > 0) {
$rxmodule['filetypes'] = array('jpg','gif','jpeg','png','bmp');
if (is_array($rxmodule['imagelist']) and (count($rxmodule['imagelist'])==1) and ($rxmodule['imagelist'][0]=='')) {
$rxmodule['imagelist'] = array();
}
foreach ($rxmodule['mediafiles'] as $rxmodule['mediafile']) {
$rxmodule['file'] = $rxmodule['mediafile']->getFileName();
$rxmodule['fileinfo'] = pathinfo($rxmodule['file']);
$rxmodule['extension'] = strtolower($rxmodule['fileinfo']['extension']);
if (in_array($rxmodule['extension'],$rxmodule['filetypes'])) {
$rxmodule['imagelist'][] = $rxmodule['file'];
}
}
}
}
}
// Array mischen wg. Zufallsbild
if ( ($rxmodule['randompic'] == '1') and (count($rxmodule['imagelist']) > 1) ) {
shuffle($rxmodule['imagelist']);
}
/**
* Bild vorhanden -> HTML-Code für Bild und evtl. Link zusammenbauen
*/
if ($rxmodule['imagelist'][0] != '') {
$rxmodule['original'] = $REX['HTDOCS_PATH'] . 'files/' . $rxmodule['imagelist'][0];
$rxmodule['info'] = getimagesize($rxmodule['original']);
$rxmodule['pwidth'] = $rxmodule['info'][0]+20;
$rxmodule['pheight'] = $rxmodule['info'][1]+30;
if ((isset($rxmodule['galimgsize']) and ($rxmodule['galimgsize'] <> ''