Demo

Probiere ClanSphere aus und teste daran herum. Demo


Antworten: 6
Seite [1]
Pred


Poststar




Herkunft: Bischofsmais
Beiträge: 762
# Thema - 07.01.2010 um 21:43 Uhr
Hallo zusammen,

vermutlich steh ich grad mächtig aufm Schlauch, oder bin zu Müde um selbst auf Lösung zu kommen. Ich habe folgendes Problem:

Ich möchte unsere Gallery nicht nach ID (oder Name wie bei uns) Ordnen, sondern nach Updates. D.h. Ordner in dennen neue Bilder sind, sollen an erster stelle stehen usw.

Ich weiss, das ich das in der list.php ändern muss, aber ich komm einfach nicht dahinter wie ich das anstelle. Vllt. weiss ja jemand von euch schnellen Rat

Vermutlich muss ich nur irgendwie die gallery Tabelle Joinen bei der Abfrage und dann nach gallery_time sortieren... aber wie gesagt... schlauch und so ^^


------------------
Inaktiv
Pred
Thread-Ersteller


Poststar




Herkunft: Bischofsmais
Beiträge: 762
# Antwort: 1 - 10.01.2010 um 23:29 Uhr
*Push*

Keiner nen Codeschnipsel oder ähnliches zur Hand? ^^


------------------


Inaktiv
|
reVerB


Geekboy




Beiträge: 1237
# Antwort: 2 - 11.01.2010 um 00:59 Uhr
Pauschal würde ich ja sagen, das es sich dabei um eine Sort-Funktion handelt. Momentan wird so wie ich die PHP interpretiere nach der ID sortiert. Also es wird nach "gallery_id" sortiert. Du willst aber nach "gallery_time" sortieren. Dann muss man ja im grunde nur nach sort im Dokument suchen und schauen, welche option dem nahe kommt. Dabei habe ich folgendes gefunden:
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
1. / 2. / ... 
 if ($folders_id >= 1) {
  
$from 'gallery';
  
$select 'gallery_time, gallery_name, gallery_titel, ';
  
$select .= 'gallery_description, gallery_id, gallery_vote, gallery_count, folders_id';
  
$where "gallery_status = 1 AND gallery_access <= '" $access_id "'";
  
$where .= " AND folders_id = '" . (int)$folders_id "'";
  switch (
$options['list_sort']) {
    case 
0:
      
$order 'gallery_id DESC';
      break;
    case 
1:
      
$order 'gallery_id ASC';
      break;
  }


Ich würde es mal damit versuchen:
 
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
1. / 2. / ... 
 if ($folders_id >= 1) {
  
$from 'gallery';
  
$select 'gallery_time, gallery_name, gallery_titel, ';
  
$select .= 'gallery_description, gallery_id, gallery_vote, gallery_count, folders_id';
  
$where "gallery_status = 1 AND gallery_access <= '" $access_id "'";
  
$where .= " AND folders_id = '" . (int)$folders_id "'";
  switch (
$options['list_sort']) {
    case 
0:
      
$order 'gallery_time DESC';
      break;
    case 
1:
      
$order 'gallery_time ASC';
      break;
  }


Ich gebe keine Garantie auf die Funktion. Ich hoffe aber, das ich einen kleinen Anhaltspunkt geben konnte mein bester


Inaktiv
|
Pred
Thread-Ersteller


Poststar




Herkunft: Bischofsmais
Beiträge: 762
# Antwort: 3 - 11.01.2010 um 17:39 Uhr
hi reverb,

danke für die tipps, aber das funktioniert nicht.

Ich will ja nicht die Bilder nach Zeit sortieren, sondern die Ordner... am besten siehst du dir das ganze mal an:
http://www.zockermag.de/index/gallery/list/folders_id/1

Hier werden die ganzen Unterordner Quasi nach Name sortiert. Ich möchte aber, das der Ordner, in dem zuletzt ein Bild hinzugefügt wurde, an erster Stelle steht.

Ich vermute mal, das wird in diesem Teil des Codes geregelt:
 
1.
2.
3.
4.
5.
6.
1. / 2. / ... 
   $where "folders_mod = 'gallery'";
  
$folders cs_sql_select(__FILE__$from$select$where'folders_name ASC'00);
  
$folders_loop count($folders);
  
$data['link']['gallery'] = cs_link($cs_lang['mod_name'], 'gallery''list');
  
$data['link']['subfolders'] = make_folders_head($folders$folders_current['sub_id'], $folders_current['folders_name']);
  
$data['data']['folders_name'] = $folders_current['folders_name'];


Hier kann ich ja nicht nach gallery_time sortieren, weil die pre_folders tabelle keine timestamps speichert... ergo... war mein ansatz die pre_gallery tabelle zu joinen und dann nach gallery_time zu sortieren... aber ka wie ich das genau machen kann...


------------------


Inaktiv
|
reVerB


Geekboy




Beiträge: 1237
# Antwort: 4 - 12.01.2010 um 01:27 Uhr
Übrigens glückwunsch zum relaunch. Irgendwie vermisse ich das Projekt ^^

Aber egal.

Was ist, wenn du über eine Tabelle Namens folder_refresh und einem Script den neuesten Timestamp aus den Ordnern ausliest und unter folder_refresh speicherst. Dann dürftest du doch nach folder_refresh sortieren können.

Dann machste zum Beispiel ein Script, das einmal alle Timestamps ausliest und in folde_refresh speichert. Und in die Create oder Edit Dateien des Gelery-Moduls baust du die funktion ein, das der aktuelle Timestamp automatisch auch am Folder gespeichert wird. Das ist so meine Idee. Frag mich net, wie man das codet. So weit bin ich PHP/SQL net ^^. Aber so würde ich es machen, wenn ichs könnte.


Inaktiv
|
Pred
Thread-Ersteller


Poststar




Herkunft: Bischofsmais
Beiträge: 762
# Antwort: 5 - 12.01.2010 um 18:41 Uhr
ja, den gedanken hatte ich auch schon. Aber es sind ja fast 1000 bilder in etlichen ordner schon vorhanden... die würden da dann ja ned miteinbezogen werden.

Naja, werd die Tage nochmal bissl rumprobieren. Wenn ich ne Lösung hab, meld ich mich nomma


------------------


Inaktiv
|
reVerB


Geekboy




Beiträge: 1237
# Antwort: 6 - 13.01.2010 um 01:40 Uhr
Wieso? Du schreibst einfach ein Script, das alle Ordner einmal abgrast und den jüngsten Timestamp aus dem Ordner zieht und in die neue Tabelle schreibt. Danach löschte das Script wieder und bastelst in die Create und Edit Funktion ein Script, das beim speichern oder ändern des Bildes nicht nur den Timestamp für das Bild aktualisiert bzw. speichert, sondern es auch gleich in die neue Tabelle setzt.


Inaktiv
|
Antworten: 6
Seite [1]


Sie müssen sich registrieren, um zu antworten.