[SOLVED][serendipity_event_freetag] Artikel-Tags

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
Dragonblast
Regular
Posts: 23
Joined: Thu Jan 11, 2007 3:05 pm

[SOLVED][serendipity_event_freetag] Artikel-Tags

Post by Dragonblast »

Hey Community !

Habe mir das "serendipity_event_freetag" Plugin gezogen.
Nun möchte ich nicht, dass mir das Plugin automatisch alle Tags
bei jedem Artikel am $entry.body anhängt.
Mein Ziel wäre, die Tags von jedem Eintrag einer Smarty-Array-Variable zu übergeben, und dann im entries.tpl auszugeben.

Kann mir jemand einen Lösungsvorschlag posten, oder wenn vorhanden,
einen Link zu einem früheren Thread zu diesem Thema ( wurde per
Suche nicht fündig ) ?

Wäre euch echt dankbar !


Freundliche Grüsse
Dragonblast
Last edited by Dragonblast on Thu Jan 11, 2007 4:40 pm, edited 1 time in total.
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: [serendipity_event_freetag] Artikel-Tags

Post by garvinhicking »

Hi!

Hm, das ist derzeit im Plugin noch nicht vorgesehen; es kann nur in den body gehangen werden oder in den footer des eintrags.

Schau dir mal die Methode "function displayEntry(&$eventData, $addData)" an, die ist dafür zuständig. Du könntest recht leicht einfach ein eigenes Feld wie "tags" als $field variabe besetzten, dann wäre der Inhalt dessen in Smarty-Variablen...

Da Du dich ja schon etwas auszukennen scheinst, vielleicht hättest Du Lust mal zu schauen da eine Konfig-Variable neu anzulegen, ähnlich wie "embed_footer" die "embed_smarty" heißt und dann die Tags einfach in $eventData[...]['properties']['tags'] reinschreibst? Dann kannst Du die in Smarty via {$entry.properties.tags} aufrufen...

HTH,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Dragonblast
Regular
Posts: 23
Joined: Thu Jan 11, 2007 3:05 pm

Post by Dragonblast »

Besten Dank für deine rasche Antwort !

Nun, habe ich mein Problem beinahe gelöst ( nun ja, der Weg war
eigentlich schon vorgegeben )..

Ich habe gesehen, dass jedem Entry ein Tagliste übergeben wird.
( Per Smarty-Debug-Console ) und kann diese per foreach-Schleife
zu jedem Artikel ausgeben.

Nun wird aber jedem Tag noch ein Leerzeichen angehängt ( ist auch
ersichtlich bei der Ausgabe ). Ich möchte dieses jedoch entfernen,
habe aber in der Datei "serendipity_event_freetag.php" kein solches
gefunden... Hättest du mir einen Vorschlag ?

Code: Select all

Smarty-Debug-Console

{$entries}      properties => Array (2)
                          freetag_tags => Array (7)
                            0 => Tag 1\r
                            1 => Tag 2\r
                            2 => Tag 3\r
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Ich vermute das "\r" kommt daher weil Du mit einem Windows-Tool die Tags kommasepariert eingegeben hast und mit \n\r getrennt? Und irgendwas explodet oder ersetzt wohl die Tags anhand von "\n", so dass ein "\r" übrig bleibt?

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Dragonblast
Regular
Posts: 23
Joined: Thu Jan 11, 2007 3:05 pm

Post by Dragonblast »

Du bist echt schlau ;) Ja, habe das ganze so in die Datenbank
eingetragen wie du vorhersagtest =)

Werde das noch noch ausbessern müssen..
Momentan reicht mir $foobar|replace:"\r":""

Besten Dank nochmals !

[SOLVED]


EDIT
Habe gerade gesehen, dass wenn ich ein Eintrag "extended" habe,
keine Tags erhalte. Im Debugger zeigt es mir auch ein leeres Array
an: properties => Array (0) ...

Wüsstest du, an was das liegen könnte ?

Mein Verdacht liegt auf diese Funktion:

Code: Select all

    function importEntryTagsIntoProperties(&$eventData, $addData) {
        // we do a dual loop here, which is probably the worst thing to do.
        // A better thing might be some kind of array merge action, but I am not
        // entirely sure how do do that with the arrays we are given.
        //
        // RefactorMe Later.

        // Loop one in getTagsForEntries
        $tagGroups = $this->getTagsForEntries(array_keys($addData));

        // Loop 2
        if (is_array($tagGroups))  {
            foreach($tagGroups as $entryId => $tagList) {
                $eventData[$addData[$entryId]]['properties']['freetag_tags'] = $tagList;
                $eventData[$addData[$entryId]]['properties']['freetag_tagList'] = implode(",", $tagList);
            }
        }
    }
Die Tags werden ja nur dann im $eventData[$addData[$entryId]]['properties']['freetag_tags'] gespeichert, wenn es $tagGroups ein Array ist ( also wenn mehrere Einträge
vorhanden sind )...
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Wow. Ein sehr guter "Fang", den Du da gemacht hast. Das war ein tatsächlich schwererer Bug, der nicht am Plugin sondern am Serendipity-Kern lag.

Den habe ich nun beheben können, und er wird Teil der nächste Version sein die sicher bald rauskommt. Mit folgendem Patch kannst du es schon anwenden:

http://svn.berlios.de/viewcvs/serendipi ... 8&view=rev

Vielen Dank für diese Hilfe!

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Dragonblast
Regular
Posts: 23
Joined: Thu Jan 11, 2007 3:05 pm

Post by Dragonblast »

Bitte-und Dankeschön =)

Ich erhalte jedoch die Ausgabe:

Fatal error: Call to undefined function serendipity_db_time() in /var/www/bkanal.ch/v2/htdocs/app/webroot/blog/include/functions_entries.inc.php on line 475

Kann das daran liegen, dass die Blog-Software zu alt ist ? ( 1.0.4 )
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Oh, achso. Die gelinkte datei ist von Serendipity 1.1! Du müsstest Dir also das diff raussuchen was ich heute gemacht habe und manuell auf 1.0.4 transportieren.

Oooder halt auf die 1.1 aktualisieren. :)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
Dragonblast
Regular
Posts: 23
Joined: Thu Jan 11, 2007 3:05 pm

Post by Dragonblast »

Yes, lag daran ( habe den ein Upgrad durchgeführt.. ).
Die Tags werden mithilfe deines Fixes auch angezeigt =) Dankeschön !
( Ohne die Hilfe wäre unser Blog nur halb so perfekt für den Launch ;) )
Post Reply