Im Normalfall kann man ja jedes Bild anklicken, aber bei mehr als 80-300 Bildern macht das keinen Spaß mehr .
z.B. dass Addon Greybox erlaubt mehrere Bilder zu einer Liste hinzuzufügen. Da bei der Medienauswahl schon die Möglichkeit gegeben ist an Dateien einen Checkflag zu setzen, bzw. am Ende der Auswahl ALLE Dateien der aktuellen Medienauswahl zu markieren, fehlt nur noch der Button zum Übernehmen.
Das ganze würde dann wie folgt aussehen:
[ externes Bild ]
Bilderauswahl (in diesem Beispiel von GreyBox) anklicken.
[ externes Bild ]
Viele Bilder in einer Kategorie
[ externes Bild ]
Herunterscrollen bis zum Ende der Seite und den linken Haken für alle Dateien anklicken. Jetzt auf den "neuen" Button (ÜBERNEHMEN) klicken.
[ externes Bild ]
Juhuu, alle Bilder sind übernommen.
Das ganze ist auf jeden Fall technisch möglich und funktioniert mit folgender Änderung an ./redaxo/include/pages/medienpool.inc.php :
(Diff zwischen Original und Patch)
Code: Alles auswählen
--- medienpool.inc.php-old 2008-03-24 15:44:00.000000000 +0100
+++ medienpool.inc.php 2008-05-13 23:27:00.000000000 +0200
@@ -111,10 +111,41 @@
}
?>
}
+function selectMedialistChecked(FieldName)
+{
+ var objCheckBoxes = new getObjArray(FieldName);
+
+ if (!objCheckBoxes) return;
+
+ var countCheckBoxes = objCheckBoxes.length;
+
+ if (!countCheckBoxes) {
+ if (objCheckBoxes.checked) {
+ // quick and dirty:
+ // von der Checkbox zum sp‰teren a-Tag durchhangeln, da dort der Dateiname steht
+ var h = objCheckBoxes.parentNode.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.href;
+
+ var filename = h.substring(h.indexOf("'")+1, h.lastIndexOf("'"));
+ selectMedialist(filename);
+ }
+ } else {
+ for (var i = 0; i < countCheckBoxes; i++) {
+ if (objCheckBoxes[i].checked) {
+ // quick and dirty:
+ // von der Checkbox zum sp‰teren a-Tag durchhangeln, da dort der Dateiname steht
+ var h = objCheckBoxes[i].parentNode.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.nextSibling.firstChild.href;
+
+ var filename = h.substring(h.indexOf("'")+1, h.lastIndexOf("'"));
+ selectMedialist(filename);
+ }
+ }
+ }
+}
+
function SetAllCheckBoxes(FieldName, mthis)
{
var CheckValue;
if (mthis.checked) CheckValue=true;
@@ -1394,10 +1425,11 @@
<label class="rex-hide" for="rex_move_file_dest_category">'.$I18N->msg('pool_selectedmedia').'</label>
'. $cats_sel->get() .'
<input class="rex-sbmt" type="submit" value="'. $I18N->msg('pool_changecat_selectedmedia') .'" onclick="var needle=new getObj(\'media_method\');needle.obj.value=\'updatecat_selectedmedia\';" />';
}
$add_input .= '<input class="rex-sbmt" type="submit" value="'.$I18N->msg('pool_delete_selectedmedia').'"'. rex_accesskey($I18N->msg('pool_delete_selectedmedia'), $REX['ACKEY']['DELETE']) .' onclick="if(confirm(\''.$I18N->msg('delete').' ?\')){var needle=new getObj(\'media_method\');needle.obj.value=\'delete_selectedmedia\';}else{return false;}" />';
+ $add_input .= '<input class="rex-sbmt" type="button" value="¸bernehmen" onclick="selectMedialistChecked(\'selectedmedia[]\')"/>';
echo '
<tfoot>
<tr>
<td class="rex-txt-algn-cntr rex-icon">
So eine Funktion würde ich mir in zukünftigen Redaxo-Versionen gerne serienmässig wünschen.
(Danke an Milindur(.de) für den Hack und der selbstverständlichen Freigabe der Änderung hier im Forum)
Viele Grüße,
Daniel