Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.8 veröffentlicht (17.10.16)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Smilieliste ergänzen
#1
Hi,

ich stelle mich gerade irgendwie zu dusselig an Sad

Die Smilieliste soll um den title-Tag ergänzt werden. Wert des Titles soll der jeweilige Wert des "name"-Attributs der Smilietabelle sein.

Zusammengebaut wird die Liste in der inc/functions.php, ich bekomme aber irgendwie das $smiliecache-Array nicht so ergänzt, dass er mir 'name' mit einbaut.

Mein Ziel ist es aus :
PHP-Code:
$smilies .= "<td><a href=\"javascript:addsmilie('$find');\"><img src=\"$image\" /></a></td>"
dies zu machen:
PHP-Code:
$smilies .= "<td><a href=\"javascript:addsmilie('$find');\"><img src=\"$image\" alt=\"\" title=\"$name\" /></a></td>"
Zum einen will ich also erstmal valides (X-)HTML draus machen und dann halt noch den title setzen. Die Ergänzung mit alt ist hier natürlich nicht das Problem.

Dazu muss ich dann ja
PHP-Code:
while(list($find$image) = each($smiliecache)) 
so ergänzen:
PHP-Code:
while(list($find$image$name) = each($smiliecache)) 


Nur muss ich hier die $smilie['name'] noch irgendwie mit einbauen:
PHP-Code:
        if(!$smiliecache)
        {
            
$query $db->query("SELECT * FROM ".TABLE_PREFIX."smilies WHERE showclickable!='no' ORDER BY disporder");

            while(
$smilie $db->fetch_array($query))
            {
                
$smiliecache[$smilie['find']] = $smilie['image'];
                
$smiliecount++;
            }
        } 

Meine bisherigen Versuche sind fehlgeschlagen. Hat jemand nen Tipp für mich, wie ich 'name' ins das $smiliecache-Array einbauen muss, damit es funktioniert? Ich brauche ja eine zusätzliche Array-Dimension, aber wie?
In den sanften Worten der heiligen Jungfrau Maria: "Was'n das für'n Scheiß?"
Zitieren
#2
Hmm, hat keiner ne Idee oder nen Denkanstoß für mich?
In den sanften Worten der heiligen Jungfrau Maria: "Was'n das für'n Scheiß?"
Zitieren
#3
Kenne den Code jetzt nicht, aber was wenn du einfach:

PHP-Code:
if(!$smiliecache)
        {
            
$query $db->query("SELECT * FROM ".TABLE_PREFIX."smilies WHERE showclickable!='no' ORDER BY disporder");

            while(
$smilie $db->fetch_array($query))
            {
                
$smiliecache[$smilie['find']] = $smilie['image'];
                
$name $smilie['name'];
                
$smiliecount++;
            }
        } 

machst, vorausgesetzt "name" heißt auch die spalte in der tabelle.
Zitieren
#4
Soweit ich das sehe, wurde das Ganze in die nächste Version integriert. Allerdings gibt es dort die neue class_parser.php, daher kann ich dir auf die Schnelle keinen Fix geben. Im Notfall könntest du auch $find als title verwenden.

Gruß,
Michael
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#5
Jo, die Spalte heißt "name" aber so klappt es trotzdem nicht.
$name muss irgendwie aus dem $smiliecache-Array gezogen bzw. zunächst eingebaut werden.

€:
$find als title wirkt irgendwie komisch.
Da werde ich mich dann wohl später nochmal dran versuchen müssen.
In den sanften Worten der heiligen Jungfrau Maria: "Was'n das für'n Scheiß?"
Zitieren
#6
Ich versteh das grade nicht so ganz, wie die das mit dem Cache lösen. denn was enthält die Variable $smilie['find']? Irgendwie muss ja ein da ein Zusammenhang zwischen find und image bestehen.

Änder mal bitte testweiße den code so:

Code:
if($smiliecache)
        {
            $query = $db->query("SELECT * FROM ".TABLE_PREFIX."smilies WHERE showclickable!='no' ORDER BY disporder");

            while($smilie = $db->fetch_array($query))
            {
                $smiliecache[$smilie['find']] = $smilie['image'];
                $name = $smilie['name'];
                $smiliecount++;
            }
        }

und sag was er macht! Das ist keine Lösung, da ja so der Cache "umgangen" wird.
Zitieren
#7
Ist ja der Code wie oben.
Zusammen mit den beiden Ergänzungen aus Post 1 bei while und smilie .= führt das Stück Code dazu, dass die Smilieliste überhaupt nicht mehr angezeigt wird.

Das Ergebnis ist zwar etwas überraschend, dass es aber nicht funktioniert ist nicht weiter überraschend. Denn mit dem Code legt man ja ein weiteres Array $name an, welches in der whlie-Schleife gar nicht berücksichtigt wird, da dort ja mit each($smiliecache) gearbeitet wird.

Man müsste also wirklich das Array $smiliecache um eine Dimension erweitern.

Aber wie auch immer, meine Zeit am Board weiterzubasteln ist derzeit arg eingeschränkt. Da stelle ich lieber erst alle relevanten Templates auf mein Design um und kümmere mich später um solche Frickeleien.
Weitere Lösungsideen gucke ich mir aber natürlich gerne an.

Solange wandert das "Smilielist titlen" erstmal in die längerfristige ToDo-Liste...
In den sanften Worten der heiligen Jungfrau Maria: "Was'n das für'n Scheiß?"
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Frage zur der FAQ "Wie kann ich einen Link im oberen Menü ergänzen?" Riccardo 10 1.835 24.06.2009, 23:49
Letzter Beitrag: Riccardo
  profil felder ergänzen stolat 4 1.171 28.06.2006, 14:09
Letzter Beitrag: stolat