Seite 1 von 1

Sortierreihenfolge komfortabel ändern

Verfasst: Sa 2. Mai 2009, 15:17
von Nakoda
Hallo zusammen,
ich habe mir einen Artikel mit einer Terminübersicht erstellt (hier).
Weiterhin habe ich eine Kategorie in der die Einzelheiten zu einem Termin gespeichert werden.
Zur besseren Übersicht habe ich die Artikel mit einem Sortierschlüssel versehen und danach sortiert.
Wenn ich nun einen Termin dazwischen schieben möchte muss ich ja au die Schlüssel ändern. Da muss man aber immer wieder über die Eigenschaften gehen.
Das ist, wenn man bei zwanzig Terminen einen an die zweite stellt doch 'ne eher "bescheidene" Arbeit. Für mich persönlich wäre es eine tolle Sache wenn man den Sortierschlüssel schon in der Übersicht einer Kategorie ändern könnte. Lässt sich das irgendwie umsetzen oder ist es vielleicht geplant so etwas ein zu bauen :?:

Re: Sortierreihenfolge komfortabel ändern

Verfasst: Sa 2. Mai 2009, 16:02
von idea-tec
hm, ich nutze (genau aus solchen gründen) den sortierschlüssel nicht.
wenn ich es jedoch müsste, würde ich mir eine 5er, 10er oder je nach umfang eine 25er-schrittweite ausdenken, damit ich dann immer mal welche dazwischen schieben kann

mir ist nicht bekannt, dass es da was automatisches gibt

Re: Sortierreihenfolge komfortabel ändern

Verfasst: Sa 2. Mai 2009, 16:44
von Nakoda
Schade das! Aber Dein Tipp ist auch 'ne Möglichkeit. Danke dafür. :D
Vielleicht kommt das ja irgendwann doch mal von Seiten der Programmierer. :wink:

Re: Sortierreihenfolge komfortabel ändern

Verfasst: So 3. Mai 2009, 21:46
von GaMbIt_
Was mir gefallen würde wäre eine "Schiebefunktion" ähnlich der in der Kategorienbearbeitung...
Sollte die Sortierung auf Sortierschlüssel gestellt sein, müssten Pfeilchenbuttons erscheinen mit denen man die Artikel in der Reihenfolge verschieben könnte...
Das kollidiert aber sicher mit der manuellen Eingabe von Sortierschlüsseln...
Und wäre auch ne Menge Arbeit hunderte Artikel zu verschieben...
Um das zu vereinfachen könnte es ja dann auch zusätzliche Buttons geben wie z.B. ganz nach oben/unten oder um 10 Schritte nach oben verschieben... oder gleich eine Drag&Drop Ajax Geschichte...

Re: Sortierreihenfolge komfortabel ändern

Verfasst: Mo 4. Mai 2009, 08:16
von Nakoda
GaMbIt_ hat geschrieben:Was mir gefallen würde wäre eine "Schiebefunktion" ähnlich der in der Kategorienbearbeitung...
Sollte die Sortierung auf Sortierschlüssel gestellt sein, müssten Pfeilchenbuttons erscheinen mit denen man die Artikel in der Reihenfolge verschieben könnte...
Das kollidiert aber sicher mit der manuellen Eingabe von Sortierschlüsseln...
Und wäre auch ne Menge Arbeit hunderte Artikel zu verschieben...
Um das zu vereinfachen könnte es ja dann auch zusätzliche Buttons geben wie z.B. ganz nach oben/unten oder um 10 Schritte nach oben verschieben... oder gleich eine Drag&Drop Ajax Geschichte...

Gute Idee das. Das würde mir auch gefallen. Mal sehen ob da was von nachkommt. :D
In den nächsten Updates.

Re: Sortierreihenfolge komfortabel ändern

Verfasst: Di 25. Aug 2009, 08:01
von blackangelxl
Hier die Antwort auf euren Sortierungswunsch :-)

A.)
+ /contenido/includes/includes.con_art_overview.php

1.) ca. Zeile 86 -> 96
- Den Array "$actionList = array" um zwei Parameter erweitern.
CODE:

Code: Alles auswählen

"sortup",
"sortdown",
2.) ca. Zeile 359
- folgenden Parameter einfügen
CODE:

Code: Alles auswählen

$sorted     = $sart["artsort"];
3.) ca. Zeile 464
- folgenden Code einfügen
CODE:

Code: Alles auswählen

if (($perm->have_perm_area_action( "con", "con_sort_up" ) ||
$perm->have_perm_area_action_item( "con", "con_sort_up" ,$idcat)) && $inUse == false )
{
    if( $sorted == 0 ) {
	    $lockimg = 'images/folder_moveup_inact.gif';
	    $lockalt = i18n("Einen Artikel nach oben verschieben");
	    $sort_link1 = '<img src="'.$lockimg.'" title="'.$lockalt.'" alt="'.$lockalt.'" border="0">';
	} else {
	    $lockimg = 'images/folder_moveup.gif';
	    $lockalt = i18n("Einen Artikel nach oben verschieben");
	    $sort_link1 = '<a href="'.$sess->url("main.php?area=con&idcat=$idcat&action=con_sort_up&frame=4&idart=$idart&next=$next").'" title="'.$lockalt.'"><img src="'.$lockimg.'" title="'.$lockalt.'" alt="'.$lockalt.'" border="0"></a>';
	}
}
if (($perm->have_perm_area_action( "con", "con_sort_down" ) ||
$perm->have_perm_area_action_item( "con", "con_sort_down" ,$idcat)) && $inUse == false )
{
    if( $sorted < 0 ) { 
	    $lockimg = 'images/folder_movedown_inact.gif';
	    $lockalt = i18n("Einen Artikel nach unten verschieben");
	    $sort_link2 = '<img src="'.$lockimg.'" title="'.$lockalt.'" alt="'.$lockalt.'" border="0">';
	} else {
	    $lockimg = 'images/folder_movedown.gif';
	    $lockalt = i18n("Einen Artikel nach unten verschieben");
	    $sort_link2 = '<a href="'.$sess->url("main.php?area=con&idcat=$idcat&action=con_sort_down&frame=4&idart=$idart&next=$next").'" title="'.$lockalt.'"><img src="'.$lockimg.'" title="'.$lockalt.'" alt="'.$lockalt.'" border="0"></a>';
	}
}
4.) ca. Zeile 726
- folgenden Code in "case "actions":" einfügen
CODE:

Code: Alles auswählen

case "sortup":
    $actionValue = $sort_link1;
    break;
case "sortdown":
    $actionValue = $sort_link2;
    break;
B.)
+ /contenido/includes/functions.str.php

1.) ca. Zeile 976
- folgende Functions einfügen
CODE:

Code: Alles auswählen

function moveUpArticle($idart) {
    global $db, $sess, $cfg, $lang;
    
    // Select
    $sql = "SELECT artsort FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '". Contenido_Security::toInteger($idart) ."' AND idlang = '". $lang ."' LIMIT 1";
    $db->query($sql);
    $db->next_record();
	$currentSort = $db->f("artsort");
	
	// If - Position
	if( $currentSort != 0 ) {
	
        // Vars
	    $newSort = $currentSort - 1;
	
        // Update
        $sql = "UPDATE ".$cfg["tab"]["art_lang"]." SET artsort='". Contenido_Security::toInteger($newSort) ."' WHERE idart = '". Contenido_Security::toInteger($idart) ."' AND idlang = '". $lang ."'";
        $db->query($sql);
	}
}

function moveDownArticle($idart) {
    global $db, $sess, $cfg, $lang;
    
    // Select
    $sql = "SELECT artsort FROM ".$cfg["tab"]["art_lang"]." WHERE idart = '". Contenido_Security::toInteger($idart) ."' AND idlang = '". $lang ."' LIMIT 1";
    $db->query($sql);
    $db->next_record();
	$currentSort = $db->f("artsort");
	
	// If - Position
	if( $currentSort >= 0 ) {
	
        // Vars
	    $newSort = $currentSort + 1;
	
        // Update
        $sql = "UPDATE ".$cfg["tab"]["art_lang"]." SET artsort='". Contenido_Security::toInteger($newSort) ."' WHERE idart = '". Contenido_Security::toInteger($idart) ."' AND idlang = '". $lang ."'";
        $db->query($sql);
	}
}

C.)
+ SQL Tabelle "con_actions"


1.) folgenden SQL Insert einfügen
CODE:

Code: Alles auswählen

INSERT INTO `con_actions` (`idaction`, `idarea`, `alt_name`, `name`, `code`, `location`, `relevant`) VALUES
(807, 1, '', 'con_sort_down', 'moveDownArticle($idart);', '', 1),
(808, 1, '', 'con_sort_up', 'moveUpArticle($idart);', '', 1);
INFO
- Contenido erzeugt auch den CODE wenn die Function nicht in der SQL Tabelle existiert.
- Da muss nur der "location" Row nachgetragen werden
Functions:
+ moveDownArticle($idart);
+ moveUpArticle($idart);

mfg, Sebastian