Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Themen bestimmter Foren für den Nutzer im Menü auflisten
#1
Liebe deutsche MYBB-Community (schleim - fängt ja gut an^^),

ich habe hier bereits viel Hilfe gefunden und normalerweise, habe ich mir abgewöhnt in Foren nach Codíng-Hilfe zu fragen, weil ich verstehen kann, dass es nervtötend ist, wenn jemand danach fragt, dass du die Arbeit für ihn machen sollst, nur weil er selber keine Ahnung hat. Blush

Nun habe ich aber fast alles umgesetzt, was ich mir für mein Forum vorgestellt habe. Einige Plugins haben geholfen, manche If-Abfragen habe ich noch hinbekommen und hier und dort ging durch etwas durch Foren-Hilfe klar.

Nach diesem langen Vorwort, muss ich aber gestehen, dass sich dieses Anliegen als zu kompliziert für mich herausgestellt hat. Zudem habe ich nichts im Internet gefunden. Scheinbar wollte bislang niemand etwas ähnliches machen.

Zum Thema:

Ich würde gerne für jeden Nutzer die Titel seiner Themen bestimmter Forenbereiche im Menü auflisten und verlinken.

Das HTML und CSS drumherum kriege ich hin, aber den Rest nicht.

Ich vermute hier muss eine PHP-Datenbank-Abfrage erfolgen:

PHP-Code:
<?php
      $query 
$db->query(

Soweit bin ich schon! Big Grin Alles was danach kommt, könnte ich nur frei erfinden. Das einzige was ich programmiertechnisch beherrsche, ist mir etwas per Google zusammenreimen. Hier habe ich allerdings keinen Anhaltspunkt gefunden.

Ich kann nur vermuten, daraufhin muss etwas wie das folgen:

PHP-Code:
SELECT FROM threads WHERE user_ID = ($mybb->user['uid']) and WHERE FID 22,23,14 ORDER BY * = title 

?

Ginge das wenigstens schon einmal in die richtige Richtung?

Und würde da noch etwas für die Ausgabe fehlen?

Ich hoffe auf Hilfe! Angel
Zitieren
#2
Hi

kann leider gerade nicht direkt helfen da ich nur per mobilem Gerät online bin, aber wo genau willst du die Themen denn anzeigen? In welchem Menü genau? Beachte bitte, dass dies pro Nutzer natürlich viele Themen sein können. Somit bräuchtest du zusätzlich irgendwo eine Pagination... Oder man zeigt nur die besten 5 Themen an o. Ä. Du kannst dir vorstellen wenn ein Nutzer 50 Themen hat sprengt es irgendwann das Design bzw wird unübersichtlich. Ich bin gedanklich gerade im Benutzerprofil. Korrigiere mich bitte, wenn ich etwas missverstanden habe.

Grüße
itsmeJAY
Zitieren
#3
Hey Jay,

kein Problem! Ich bin so oder so froh, dass eine Rückmeldung kommt!

Ich würde die Themen-Liste gerne in das Template header_welcomeblock_member einbauen.

Meine Menüstruktur, sieht dort wie folgt aus und ich stelle mir das etwa so vor:

Code:
<div class="dropdown">
   <a class="">Themen-Liste</a>
   <div class="dropdown-content">
      <a href="THEMENLINK 1">THEMENTITEL 1</a>
      <a href="THEMENLINK 2">THEMENTITEL 2</a>
      <a href="THEMENLINK 3">THEMENTITEL 3</a>
   </div>
</div>
Zitieren
#4
Du willst in ein drop down wirklich alle Themen einfügen? Die Liste kann echt lang werden Big Grin

Man müsste da ggf eine Pagination einbauen. Das ist aber nicht so einfach in einem Drop Down Menü.
Zitieren
#5
Nee, braucht es nicht. Ich möchte es ja auf ein paar Foren einschränken. Somit dürften da nur etwa maximal 10 Themen stehen.

Daher das "WHERE FID = 22,23,14" als Beispiel, dachte ich.

PHP-Code:
SELECT FROM threads WHERE user_ID = ($mybb->user['uid']) and WHERE FID 22,23,14 ORDER BY * = title 

Inaktive Themen verschieben wir in ein Archiv. Die fallen dann somit raus.

Wäre es nicht so, würde die Liste schon ziemlich lang werden.^^ Theoretisch könnte man sie dann aber auch scrollable machen. Smile
Zitieren
#6
Ungetestete Funktion deines Vorhabens:
PHP-Code:
$plugins->add_hook("global_start""myheadermenu_threadlist");
function 
myheadermenu_threadlist()
{
    global 
$mybb$db$headermenu_threadlist;
    
$headermenu_threadlist "";
    if(!
$mybb->user['uid'])
    {
        return;
    }
    
$query $db->simple_select("threads""tid, subject""uid = '{$mybb->user['uid']}' AND fid IN ('22,23,14') AND visible=1 AND closed NOT LIKE 'moved|%'", array("order_by" => 'dateline'"order_dir" => 'DESC'));
    
$count $db->num_rows($query);
    if(
$count 0)
    {
        
$headermenu_threadlist "<div class=\"dropdown\">
<a class=\"first\" href=\"#\">Themen-Liste</a>
<div class=\"dropdown-content\">"
;
        while(
$result $db->fetch_array($query))
        {
            
$headermenu_threadlist .= "<a href=" get_thread_link($result['tid']) . ">" htmlspecialchars_uni($result['subject']) . "</a>";
        }
        
$headermenu_threadlist .= "</div>
</div>"
    
}

Zitieren
#7
Wow, danke! Ich teste es gerne.

Als Plugin-Datei hochladen, richtig?

Oder wo füge ich den Code ein?



Wenn ich die Datei in inc/plugin hochlade, wird mir leider eine weise Seite unter admin/index.php?module=config-plugins angezeigt.^^

Die Webconsole sagt da leider auch nicht viel.^^


Hab' dir mal einen teuren Starbucks-Kaffe spendiert! Big Grin

In der Hoffnung natürlich, wir kriegen das hin, aber auch wegen noch einem Grund (siehe Nachricht).^^
Display Errors meint dazu:

Parse error: syntax error, unexpected '}' in /usr/www/users/xinvvnix/forum/inc/plugins/vorstellungen.php on line 25

Mal gucken, ob ich den Fehler entdecke.

Hmmm, das ist nur das vorletzte "}".

Davor fehlte ein Semicolon. Habe es mal verbessert, jetzt funktioniert die Plugin-Seite wieder.

PHP-Code:
<?php

$plugins
->add_hook("global_start""myheadermenu_threadlist");
function 
myheadermenu_threadlist()
{
    global 
$mybb$db$headermenu_threadlist;
    
$headermenu_threadlist "";
    if(!
$mybb->user['uid'])
    {
        return;
    }
    
$query $db->simple_select("threads""tid, subject""uid = '{$mybb->user['uid']}' AND fid IN ('322,360') AND visible=1 AND closed NOT LIKE 'moved|%'", array("order_by" => 'dateline'"order_dir" => 'DESC'));
    
$count $db->num_rows($query);
    if(
$count 0)
    {
        
$headermenu_threadlist "<div class=\"dropdown\">
<a class=\"first\" href=\"#\">Themen-Liste</a>
<div class=\"dropdown-content\">"
;
        while(
$result $db->fetch_array($query))
        {
            
$headermenu_threadlist .= "<a href=" get_thread_link($result['tid']) . ">" htmlspecialchars_uni($result['subject']) . "</a>";
        }
        
$headermenu_threadlist .= "</div>
</div>"
;
    }


?>

Wow, ich bin Programmierer! Big Grin

Jetzt scheint es noch das Problem zu geben, dass das Plugin nicht in der Plugin-Liste auftaucht, um es zu aktivieren.

Oder vielleicht muss man nichts aktivieren, aber auf jeden Fall passiert noch nichts im Menü.^^
Zitieren
#8
Hast du {$headermenu_threadlist} denn in das entsprechende template eingefügt?
Zitieren
#9
Sorry, ich war heute Nacht etwas in Eile und habe daher nur schnell eine Funktion erstellt, die du in ein vorhandenen Plugin einfügen kannst. Ein vollwertiges Plugin ist es aber nicht.

Wenn ich nachher Zeit habe, mache ich ein Plugin daraus.

Da ich aber die Modifikationen deines Theme Templates "header_welcomeblock_member" nicht kenne, kann ich keine automatische Integration ausführen lassen.

Du müsstest daher die Variable "{$headermenu_threadlist}" händisch ins Kopfmenü einfügen.
Zitieren
#10
Im Anhang findest du das individualisierte Plugin "meineextras.php".

Nach der Aktivierung wird eine neue Einstellungsgruppe hinzugefügt, über die du die Foren, sowie das Limit der anzuzeigenden Themen wählen müsstest. (Standardmäßig ist kein Forum ausgewählt)

Wie bereits geschrieben musst du auch noch die Variable "{$headermenu_threadlist}" noch dem Theme Template "header_welcomeblock_member" einfügen.

Das Plugin lässt sich später nach Bedarf erweitern, so dass du notwendige Funktionen hinzufügen könntet.


Angehängte Dateien
.php   meineextras.php (Größe: 3,7 KB / Downloads: 6)
Zitieren