MyBB.de Forum

Normale Version: Attachment-Manager mit Multipage-Ansicht
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

ich würde gerne die Seite des Attachment-Managers über eine Multipage ausgeben. Dabei könnte ich auch u.U. z.B. eine Anzeige von 10 oder 20 Attachments pro Seite als fix setzen und hier dem User keine Einstellmöglichkeit anbieten, wenn das einfacher umzusetzen wäre.

Ich habe hierzu schon mal ein wenig gestöbert und meine, dass man in der usercp.php bei
PHP-Code:
if($mybb->input['action'] == "attachments"

die Funktion multipage() aus der functions.php einbauen müsste. Die Variable $multipage sollte dann im Template usercp_attachments_attachment integriert werden können!?

Zum einen würde mich interessieren, ob mein Gedankengang bis dahin richtig ist und wenn ja, wo genau ich in der usercp.php dann den Aufruf der die Fkt. multipage() setzen müsste.

Für Unterstützung zu meinem Vorhaben wäre ich Euch dankbar. Smile

Oder gibt es da vielleicht auch eine viel einfachere Lösung und ich habe sie nur nicht gesehen? Wink

Gruß,
Jockl
Zusätzlich müssen noch die Querys angepasst werden. Probiere es erstmal selbst. Bei Problemen helfe ich dann gerne weiter.
Dragon schrieb:Probiere es erstmal selbst.
Das auf alle Fälle. Smile

Dragon schrieb:Zusätzlich müssen noch die Querys angepasst werden.
Du meinst vermutlich wegen der Ermittlung der Seitenzahl!? Muss ich da dieses Query anpassen
PHP-Code:
    $query $db->query("
        SELECT a.*, p.subject, p.dateline, t.tid, t.subject AS threadsubject
        FROM "
.TABLE_PREFIX."attachments a
        LEFT JOIN "
.TABLE_PREFIX."posts p ON (a.pid=p.pid)
        LEFT JOIN "
.TABLE_PREFIX."threads t ON (t.tid=p.tid)
        WHERE a.uid='"
.$mybb->user['uid']."' AND a.pid!='0'
        ORDER BY p.dateline DESC
    "
); 
oder ggf. ein neues schreiben?

Dragon schrieb:Bei Problemen helfe ich dann gerne weiter.
Danke, die kommen mit an Sicherheit grenzender Wahrscheinlichkeit!!!!! Smile
Das Query ist das richtige. Dort muss das Limit hinzugefügt werden. (LIMIT *von*,*bis*) Beide Zahlen kannst du errechnen.
Na, das ist ja schon mal ein Ansatz. Wink

Am Anfang sah alles recht übersichtlich aus, aber je tiefer ich meinen Kopf da rein stecke, umso dichter wird der Urwald. Smile Werde da erst mal versuchen, in den nächsten Tagen die verschiedenen Funktionen zu sortieren, sehen, ob ich die Zusammenhänge kapiere und auch mal die MySQL Referenzen bemühen... Wink
So, habe jetzt mal versucht, mir einen Überblick zu verschaffen, möchte aber nicht behaupten, dass ich damit sonderlich erfolgreich war. Sad

Mein Weg war deshalb, mir aus anderen Dateien, die auch Multipages aufbauen, den entsprechenden Code heraus zu holen und in die usercp.php zu stecken (siehe unten).
Immerhin habe ich damit so etwas wie Mulitpages erhalten. Naja, nicht wirklich. Wink
Es werden zum Einen anscheinend nicht alle Attachments gefunden. Zumindest stimmt die Gesamtzahl der Attachments nicht mit den Anzeige der Seitenanzahl unter Berücksichtigung der pro Seite angezeigten Attachments nicht überein. Zum Anderen wird nicht eine komplette Seite weiter gesprungen, sondern immer nur jeweils 1 Attachment weiter geblättert.

Im Moment bin ich mit meinem Latein am Ende, vermute aber, dass ich bei der DB-Abfrage von den Attachments einen Hund drin habe. Ich würde mich freuen, wenn mir jemand einen Tipp geben könnte, wo ich welche Fehler gemacht habe.

PHP-Code:
if($mybb->input['action'] == "attachments")
{
    
$plugins->run_hooks("usercp_attachments_start");
    require_once 
MYBB_ROOT."inc/functions_upload.php";
    
//ab hier eingefuegt
        // Do Multi Pages
        
$query $db->simple_select(TABLE_PREFIX."attachments""COUNT(*) AS attachments""uid='".$mybb->user['uid']."'");
        
$threadcount $db->fetch_field($query"attachments");

        
$perpage $mybb->settings['threadsperpage'];
        
$page intval($mybb->input['page']);
        if(
$page)
        {
            
$start = ($page-1) *$perpage;
        }
        else
        {
            
$start 0;
            
$page 1;
        }
        
$end $start $perpage;
        
$lower $start+1;
        
$upper $end;
        if(
$upper $threadcount)
        {
            
$upper $threadcount;
        }
        
$multipage multipage($threadcount$perpage$page"usercp.php?action=attachments");
    
//bis hier her
    
$attachments '';
    
$query $db->query("
        SELECT a.*, p.subject, p.dateline, t.tid, t.subject AS threadsubject
        FROM "
.TABLE_PREFIX."attachments a
        LEFT JOIN "
.TABLE_PREFIX."posts p ON (a.pid=p.pid)
        LEFT JOIN "
.TABLE_PREFIX."threads t ON (t.tid=p.tid)
        WHERE a.uid='"
.$mybb->user['uid']."' AND a.pid!='0'
        ORDER BY p.dateline DESC
        LIMIT  
$page$perpage
    "
);
..... 

Dankeschön! Smile
Ersetze:
LIMIT $page, $perpage
durch:
LIMIT $start, $end
Wozu sollen die Variablen denn sonst gut sein. Toungue
OK Smile

Da habe ich nicht darauf geachtet.

Allerdings scheinen die Seiten trotzdem noch irgendwie zusammen gewürfelt zu werden. So richtig habe ich das "System" noch nicht durchschaut. Jedenfalls sind die unterschiedlichen Seiten verschieden lang und teilweise wiederholen sich die Attachments auf den einzelnen Seiten!?!?

Kann es sein, dass die Variable $multipage evtl. an einer anderen Stelle eingesetzt werden muss?
Ich denke, dass es so richtig ist.
Hm, das heißt.....keine Idee, wo der Fehler liegen könnte? Rolleyes
Seiten: 1 2