pragmaMx Support Forum

Archive => Coppermine-Mx => veraltete bzw. unsupportete Systeme und Module => Alt Archive => Modifikationen und Erweiterungen => Thema gestartet von: Marodeur am 22 Februar 2011, 17:08:18

Titel: Coppermine automatisch Position korrigieren?
Beitrag von: Marodeur am 22 Februar 2011, 17:08:18
Hi,

wenn man in der Coppermine mit der Stapel-Bearbeitung die hochgeladenen Bilder einfügt, so werden die nicht in der Reihenfolge in die Datenbank abgelegt, in der sie im Verzeichnis liegen.
Also wenn man die Fotos mit Img_xxxx.jpg hat, so werden die nicht als 1,2,3,4,5... eingestellt, sondern mehr 1,2,5,6,3,4,7,8...

Da will ich auch garnicht weiter dran rumrühren. Man kann sie ja sortieren, allerdings ist das bei ein paar hundert Bildern stundenlanges klicken oder mit dem MySql-Querybrowser ein nicht viel kürzeres eintippen der Positionen (100 - ...)

Nun sollte das doch Mysql auch automatisch können?
Auflisten lass ich mir die Bilder mit
SELECT * FROM pragmamx.mx00000_cpg148_pictures where aid=1 order by filepath, filename

Nun find ich aber kein SET position = (position-1) +1
Also wenn ne Null drin steht bei 100 beginnen und jede Zeile eins höher, ansonsten die Zeilen durchgehen bis eine 0 kommt und dann entsprechend der letzten Zeile die Position um eins erhöhen.

Oder wird das nur was mit nem PHP-Script?

Danke schon mal für die Antworten.

Ich hoffe, irgendwer versteht was ich will :-)

cu, Ralf
Titel: Re:Coppermine automatisch Position korrigieren?
Beitrag von: waltkemper am 23 Februar 2011, 08:34:27
Hi ich versuch es zu verstehen.  :red:
Du kannst doch aufsteigend und absteigend nach Dateinamen sortieren und auch voreinstellen. Dazu ist es allerdings erforderlich das die Dateienamen mit einer vorangestellten Zahl beginnen. Je nach Menge 001,002,003 usw. oder 0001,0002,0003 gefolgt von dem Dateinamen wie Sylvester2010. Das geht dann mit einer Batch Umbenennung z.B. in Irfan View bevor du die Dateien hochlädst. Wichtig ist der Nameszusatz weil Coppermine Bilder mit gleichem Namen (nur Nummern) auch wenn diese in verschiedenen Ordnern liegen als identisch erkennt und dann nicht mehrmals darstellt.

Vielleicht hilft es ja. Grüße aus Winterscheid
Titel: Re:Coppermine automatisch Position korrigieren? derzeitige Lösung
Beitrag von: Marodeur am 07 März 2011, 17:49:13
Das nachfolgende Script wollte ich halt mit ein oder 2 Zeilen im Mysql_Query_Browser machen, aber ich glaub, es wird bei der unteren Lösung bleiben. Funktioniert ja auch.


#!/usr/bin/php
<?php
$aid
=$argv[1];

$dbhost      'localhost';
$dbname      'pragmamx';
$dbuname     'yyyyy';
$dbpass      'xxxxx';
$prefix      'mxmxmx';

$db mysql_connect($dbhost$dbuname$dbpass);
if (!
$db) {
    die(
"keine Verbindung möglich: \n" mysql_error());
}

$db_selected mysql_select_db($dbname,$db);
if (!
$db_selected) {
    die(
"DB nicht selektierbar:\n" mysql_error());
}

$result mysql_query("SELECT * FROM mxmxmx_cpg000_pictures where aid=$aid order by filepath,filename",$db);

$i=100;
while ( 
$row mysql_fetch_row $result ) )
{
 
$row[28]=$i;
 
$update mysql_query("UPDATE mxmxmx_cpg000_pictures SET position=$row[28] WHERE pid=$row[0]",$db);
 
$i=$i+1;
}

mysql_close($db);
?>