[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Medienpool Ausgabe sortieren
Seite 1 von 1

Medienpool Ausgabe sortieren

Verfasst: 16. Okt 2007, 13:02
von harrybrader
Hallo,
wie kann ich die Ausgabe des Medienpools anpassen, damit die Medien nach Titel sortiert werden und nicht nach dem letzten Upload oder Aktualisierung?

Verfasst: 16. Okt 2007, 14:02
von Markus.Staab
Hi,

aktuell gar nicht. Die Sortierung ist (noch) nicht beeinflussbar.

Gruß,
Markus

Verfasst: 8. Jan 2008, 15:34
von Zuperfly
Und geht das denn inzwischen? ;)

Mit

Code: Alles auswählen

$mediaCat = OOMediaCategory::getCategoryById($catId);
  $files = $mediaCat->getFiles();
hole ich in meinem Modul z.B. alle PDF einer Kategorie, allerdings steht das aktuellste PDF in der Ausgabe immer unten in der Liste.

Kann man das irgendwie mit den im Wiki beschriebenen Sortiermöglichkeiten für Artikeln kombinieren, oder gelten die nur für Artikel und im Medienpool geht da wirklich gar nix??

Verfasst: 8. Jan 2008, 16:02
von Markus.Staab
Zuperfly hat geschrieben:Und geht das denn inzwischen? ;)
Nein, ist auch nicht in allzunaher zukunft angedacht..
Zuperfly hat geschrieben: Kann man das irgendwie mit den im Wiki beschriebenen Sortiermöglichkeiten für Artikeln kombinieren, oder gelten die nur für Artikel und im Medienpool geht da wirklich gar nix??
könnte/sollte funktionieren :-)

Gruß,
Markus

Verfasst: 8. Jan 2008, 17:32
von iceman-fx
Es geht schon, aber nur wenn Du in der medienpool.inc.php (/redaxo/include/pages/) eine Zeile änderst.

Zeile:
$files->setQuery("SELECT * FROM ".$REX['TABLE_PREFIX']."file WHERE category_id=".$rex_file_category." ORDER BY updatedate desc");

ändern in (Beispiel: Name, Updatedatum):
$files->setQuery("SELECT * FROM ".$REX['TABLE_PREFIX']."file WHERE category_id=".$rex_file_category." ORDER BY title asc, updatedate desc");

Gruß iceman

PS: vorher immer schön eine Sicherheitskopie der zu ändernden Datei machen ;-))

Verfasst: 8. Jan 2008, 18:17
von Markus.Staab
Hi iceman-fx,

ich vermute dass Zuperfly nur die Ausgabe innerhalb eines Moduls/Template o.ä. ändern wollte..

Gruß,
Markus

Verfasst: 8. Jan 2008, 20:59
von iceman-fx
Auch ne Möglichkeit ;-))

Verfasst: 30. Mai 2008, 10:40
von darwin
*push* ...

HI,
hmm vor dem Problen steh ich auch grad (auf m Schlauch).

Ich versuch grad in einem Modul per array_multisort();
die '_orgnamen' zu sortieren. Leider mit ner Menge Fehlermeldungen.
Wäre nett wenn da kurz jemand helfen könnte.

Code: Alles auswählen


/*
Array
(
    [0] => OOMedia Object
        (
            [_id] => 240
            [_parent_id] => 0
            [_cat_id] => 11
            [_cat_name] => Bilder 2007
            [_cat] => 
            [_name] => 05.jpg
            [_orgname] => 05.jpg
            [_type] => image/jpeg
            [_size] => 1618365
            [_width] => 1205
            [_height] => 1795
            [_title] => 
            [_updatedate] => 1212058204
            [_createdate] => 1212058204
            [_updateuser] => admin
            [_createuser] => admin
            [_attributes] => 
            [_revision] => 
            [_med_description] => 
            [_med_copyright] => 
        )
*/
$cat = OOMediaCategory::getCategoryById($galleryId);
$bilder = $cat->getFiles();

$bilder = array_multisort($bilder, SORT_ASC, $cat->getValue('orgname');

foreach ($bilder as $bild) {}
Danke schonmal. grz. Chris

Verfasst: 30. Mai 2008, 10:51
von darwin
:oops: erledigt:

Code: Alles auswählen

if (!function_exists('sortArticlesByFileName')) {
	function sortArticlesByFileName($artA, $artB) {
		$nameA = $artA->getValue('orgname');
		$nameB = $artB->getValue('orgname');
		if ($nameA == $nameB){
			return 0;
		} 
		$names = array($nameA,$nameB);
		sort($names, SORT_STRING);
		return $names[0] == $nameA ? -1 : 1;
	}
} 

$cat = OOMediaCategory::getCategoryById($galleryId);
$bilder = $cat->getFiles();
	
if (count($bilder) > 0) {
	usort($bilder, "sortArticlesByFileName");
}

grz. Chris

Re: Medienpool Ausgabe sortieren

Verfasst: 15. Feb 2012, 21:32
von Marshall
Hallo allerseits,
o.g. Hinweis scheint für aktuelle Rexdaxo-Version veraltet (oder ich fand es einfach nicht).

Für eine Sortierung nach z.B. Name (rex_file::filename) in Redaxo 4.3.x ist die Änderung (imho) in
/include/pages/mediapool.media.inc Zeile 645 zu machen.

Order-Statement am Ende beispielsweise:

Code: Alles auswählen

$qry = "SELECT * FROM ".$REX['TABLE_PREFIX']."file f WHERE ". $where ." ORDER BY f.filename ASC, f.updatedate desc";
Grüße

Re: Medienpool Ausgabe sortieren

Verfasst: 16. Feb 2012, 09:07
von darwin
HI...
joa, o.g. code is schon etwas älter.
Würde es aber nicht am Core verädern.

Sollte statt orgname nun "filename" oder "originalname" funzen: (Redaxo 4.3.2)

Code: Alles auswählen

if (!function_exists('sortArticlesByFileName')) {
   function sortArticlesByFileName($artA, $artB) {
      $nameA = $artA->getValue('filename'); // originalname
      $nameB = $artB->getValue('filename'); // originalname
      if ($nameA == $nameB){
         return 0;
      } 
      $names = array($nameA,$nameB);
      sort($names, SORT_STRING);
      return $names[0] == $nameA ? -1 : 1;
   }
} 

$cat = OOMediaCategory::getCategoryById($galleryId);
$bilder = $cat->getFiles();
   
if (count($bilder) > 0) {
   usort($bilder, "sortArticlesByFileName");
}
*ungetestet*
grz. Chris