Moin Tim,
so kompliziert ist das garnicht, es gibt da eine Reihe von JS-Bibliotheken, die dir da viel Arbeit abnehmen.
Ich gehe mal nur auf den JS-Part ein, das kopieren/verschieben bekommst du ja, soweit ich dich verstanden habe, selbst mit PHP hin, sofern du die nötigen Daten hast
Hier mal ein Beispiel(ist so lauffähig, anstatt der Avatare aus dem Forum nimmst du halt deine eigenen Bilder):
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1" />
<meta name="author" content="doktormolle" />
<meta name="date" content="2009-07-03" />
<title>Test</title>
<script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.sortable.js"></script>
<script type="text/javascript" src="http://www.json.org/json2.js"></script>
<style type="text/css">
<!--
#sortable{empty-cells:show}
#sortable td{vertical-align:top}
#sortable tbody td img{display:block}
-->
</style>
</head>
<body>
<table id="sortable" width="300" border="1">
<colgroup width="50%" span="2"></colgroup>
<thead>
<tr>
<th>Pool</th>
<th>ZielOrdner</th>
</tr>
</thead>
<tfoot>
<tr>
<th colspan="2"><input type="button" value="speichern" onclick="fx('fx.php',$('#target'),'pfad/zum/zielordner/')"></th>
</tr>
</tfoot>
<tbody>
<tr>
<td>
<img src="http://www.tutorials.de/forum/customavatars/avatar23393_2.gif">
<img src="http://www.tutorials.de/forum/customavatars/avatar31374_2.gif">
<img src="http://www.tutorials.de/forum/customavatars/avatar59490_2.gif">
</td>
<td id="target"></td>
</tr>
</tbody>
</table>
<script type="text/javascript">
<!--
$("#sortable tbody td").sortable({
connectWith: '#sortable tbody td'
}).disableSelection();
function fx(url, obj,target)
{
var json=JSON.stringify({'zielordner':target,
'bilder':
obj.find('img').map
(
function()
{
return $(this).attr('src');
}
).get()});
if(json.length)
{
$.post(url,
'data='+escape(json),
function(data)
{
alert(data);
});
}
}
//-->
</script>
</body>
</html>
Das ganze nutzt das
JQuery-Framework, das kann fast alles, was es dafür braucht.(Daher werden auch 2 Skripte von jQuery eingebunden im <head>)
HTML-seitig ist im Beispiel folgendes wichtig für die korrekte Funktion:
Da ist eine Tabelle, deren ID ist "sortable".
In dieser Tabelle ist genau 1 <tbody>...und darin 2 <td>...diese Können sortiert werden. Die <td>, in welche die Bilder geschoben werden sollen, hat die ID "target".
Das wars von der Seite aus, der Rest läuft so ab:
Code:
$("#sortable tbody td").sortable({
connectWith: '#sortable tbody td'
}).disableSelection();
....die beiden <td> im <tbody> werden damit sortierbar gemacht.
Da ist ein Button, bei dessen onclick eine Funktion fx() aufgerufen wird:
Code:
fx('fx.php',$('#target'),'pfad/zum/zielordner/')
Dieser Aufruf gibt der Funktion 3 Parameter mit:
1. die Adresse eines PHP-Skriptes, später mehr dazu
2. Die <td>, wohin die Bilder geschoben werden(in dem Fall als jquery-Selektor)
3. Der Zielordner, wo das PHP-Skript die Bilder später hinschubsen soll
Die Funktion fx:
Code:
var json=JSON.stringify({'zielordner':target,
'bilder':
obj.find('img').map
(
function()
{
return $(this).attr('src');
}
).get()});
Es wird ein Objekt mit 2 Eigenschaften erstellt:
zielordner: was du der Funktion übergeben hast
bilder: ein Array mit den Pfaden aller in die target-Zelle geschobenen Bilder.
Dieses Objekt wird zu einem JSON-String kodiert....das kann man so gut versenden und mit PHP wieder dekodieren.(Daher wurde im <head> auch ein Skript eingebunden, welches dies Objekt kodieren kann...json2.js)
Code:
if(json.length)
{
$.post(url,
'data='+escape(json),
function(data)
{
alert(data);
});
}
Das ganze wird per AJAX an das PHP-Skript gesendet, welches die Daten verarbeiten kann, hier mal ein Beispiel für fx.php:
PHP:
<?php
if(isset($_POST['data']))
{
$data=json_decode((get_magic_quotes_gpc())
? stripslashes($_POST['data'])
: $_POST['data']
);
if(is_array($data->bilder) && count($data->bilder))
{
echo 'Folgende Bilder können jetzt per PHP nach '.
$data->zielordner." verschoben werden:\n\n";
foreach($data->bilder as $bild)
{
echo parse_url($bild, PHP_URL_PATH )."\n";
}
}
else
{
echo "nix zum verschieben";
}
}
else
{
echo 'keine Daten';
}
?>
Da müsstest dann halt das verschieben(kopieren) der Bilder umsetzen, die nötigen Daten hast du ja verfügbar.
Habs mal hochgeladen zum Testen:
http://doktormolle.de/temp/343224/