Page 1 of 1

Ähnliche Themen Plugin

Posted: Sat Sep 22, 2007 3:37 pm
by Nesti
Hi,

ich habe 2 Fragen zu dem "Ähnliche Themen" Plugin, hab zwar einiges selber probiert doch leider hat bis jetzt nichts funktioniert.

1. Ist es irgendwie möglich die Ähnlichen Themen auf der Startseite unter einem Eintrag einzubauen?
Sie werden ja nur angezeigt wenn man auf den Eintrag klickt, also nur auf der Kommentar-Seite usw. Ich würde sie jedoch gerne auf der Startseite anlegen. Ist das irgendwie möglich?


2. Ähnliche Themen auch in den Statische Seiten?
Kann man dieses Plugin auch irgendwie für die statischen Seiten nutzen? Da ich viele Seiten nutze, ist es sehr aufwendig das alles per Hand zu machen. :oops:


Danke und beste Grüße
Nesti

Re: Ähnliche Themen Plugin

Posted: Sun Sep 23, 2007 11:57 am
by garvinhicking
Hi!

1. Ja. Stelle dazu im Plugin ein, dass Du Smarty zur Positionierung nutzen willst. Dann editierst Du die entries.tpl datei deines templates, und packst {$RELATEDLINKS} an die Stelle, wo Du es gerne hättest.

2. Nein, das geht nicht, da das Plugin auf die Datenbankspalten der Einträge hin programmiet ist. Dafür müsste man das Plugin komplett mit anderem Code erweitern, der auch bei statischen Seiten ausgeführt wird.

Grüße,
Garvin

Posted: Sun Sep 23, 2007 4:22 pm
by Nesti
Hallo Garvin,

danke für deine Antwort!

Ein Problemchen hab ich leider noch, welches Plugin ist es denn? Da bei mir nur der "Freie Artikel Tags" Plugin in Frage kommt, bei dem finde ich aber keine Einstellungsmöglichkeiten?

Beste Grüße
Nesti

Posted: Sun Sep 23, 2007 7:41 pm
by garvinhicking
Hi!

Wie, was meinst Du? Du hast doch vom Plugin "Verwandte Artikel" (Ähnliche Themen oder wie auch immer) gesprochen?!? Was hat das mit dem Tagging-Plugin zu tun?

Grüßew,
Garvin

Posted: Mon Sep 24, 2007 1:43 am
by stm999999999
Auch die Freetags bieten einen "verwandte Artikel"-Block, eben auf Basis übereinstimmender Tags.

Nicht zu verwechseln mit dem Plugin, mit dem man manuell "verwandte" Artikel ein- und ausgeben kann.

Posted: Thu Sep 27, 2007 1:45 pm
by garvinhicking
Hi!

Aaah, achso. Da habe ich wohl Plugins verwechselt.

Beim Freetag plugin geht es leider nicht, die verwandten Einträge direkt auf der Startseite anzuzeigen, ohne den PHP-Code des Plugins anzupassen. Aus Performancegründen wird das immer nur für einen einzelnen Artikel gemacht, das bereits in der Übersicht zu machen würde für sehr viel Datenbanklast sorgen. Ich würde also stark empfehlen, darauf lieber zu verzichten?

Wenn es denn garnicht anders geht, müsste man sich die serendipity_event_freetag.php zur Brust nehmen und den Code

Code: Select all

            for ($i = 0; $i < $elements; $i++) {
               if (empty($eventData[$i]['properties']['freetag_tags'])) {
                    continue;
                }
(ungefähr zeile 968) ändern in:

Code: Select all

            for ($i = 0; $i < $elements; $i++) {
               if (empty($eventData[$i]['properties']['freetag_tags'])) {
                    continue;
                }
                    $passvar = $this->getRelatedEntries($eventData[$i]['properties']['freetag_tags'], $eventData[$i]['id']);
                    if (is_array($passvar)) {
                        $eventData[$i]['related_entries'] .= $this->getRelatedEntriesHtml($passvar);
                    }
    
                    if (!isset($eventData[$i]['add_footer'])) {
                        $eventData[$i]['add_footer'] = '';
                    }
Dann kann man in seiner entries.tpl die Variable {$entry.related_entries} da platzieren wo man mag (innerhalb der foreach-schleife).

Grüße,
Garvin

Posted: Wed Oct 17, 2007 7:31 pm
by Nesti
Hallo Garvin,

vielen Dank für die Klasse antwort! Werde das ganze mal am Wochenende testen.

Auf der Startseite/Übersicht wird auch nur ein Text angezeigt, sodass es mit der Performance funktionieren sollte. Aber wie gesagt, werde testen und dann mal berichten :)

Viele Grüße
Nesti

Re: Ähnliche Themen Plugin

Posted: Tue Feb 03, 2009 7:21 pm
by A.Stark
Hallo Garvin,
garvinhicking wrote:(ungefähr zeile 968) ändern in:

Code: Select all

                    $eventData[$i]['related_entries] .= 
Gibt Fehler, weil bei ['related_entries] ein Hochkomma am Ende fehlt, also

Code: Select all

$eventData[$i]['related_entries'] .=
Funktioniert bei mir aber leider trotzdem nicht. So sieht bei mir der Abschnitt in der serendipity_event_freetag.php aus:

Code: Select all

$skeys = array();
                for ($i = 0; $i < $elements; $i++) {
                   if (empty($eventData[$i]['properties']['freetag_tags'])) {
                        continue;
                    }
                    $ctags = explode(',', $eventData[$i]['properties']['freetags_tags']);
                    $passvar =& $this->getRelatedEntries($ctags, $eventData[$i]['id']);
                 if (is_array($passvar)) {
                    $eventData[$i]['related_entries'] .= $this->getRelatedEntriesHtml($passvar);
                }
                $cont = sprintf($msg, $this->getTagHtml($eventData[$i]['properties']['freetag_tags']));
                if ($field == 'add_footer') {
                    $skeys[$i] =& $eventData[$i]['add_footer'];
                } elseif ($field == 'freetag') {
                    $skeys[$i] =& $eventData[$i]['freetag'];
                } elseif (strlen($eventData[$i]['extended']) > 0) {
                    $skeys[$i] =& $this->getFieldReference('extended', $eventData[$i]);
                } else {
                    $skeys[$i] =& $this->getFieldReference('body', $eventData[$i]);
                }
                $skeys[$i] .= $cont;
            }
Und so der Abschnitt in meiner entries.tpl

Code: Select all

            <div class="tags">
            {if $entry.categories}
                <p>{$jpost} {$CONST.IN} {foreach from=$entry.categories item="entry_category" name="categories"}<a href="{$entry_category.category_link}">{$entry_category.category_name|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}</p>
            {/if}
            {$entry.freetag}
            {$entry.related_entries}
            </div>
Related-Entries funktioniert normal im Erweiterten Eintrag.
Was kann ich tun?

Grüße, Andreas

Re: Ähnliche Themen Plugin

Posted: Wed Feb 04, 2009 11:49 am
by garvinhicking
Hi!

Und wenn Du aus $eventData[$i]['related_entries'] ein $eventData[$i]['properties']['related_entries'] machst und dann $entry.properties.related_entries?

Grüße,
Garvin

Re: Ähnliche Themen Plugin

Posted: Wed Feb 04, 2009 1:16 pm
by A.Stark
Geht leider nicht. Unverändert.

So sieht es jetzt aktuell aus.

Code: Select all

for ($i = 0; $i < $elements; $i++) {
                   if (empty($eventData[$i]['properties']['freetag_tags'])) {
                        continue;
                    }
                    $ctags = explode(',', $eventData[$i]['properties']['freetags_tags']);
                    $passvar =& $this->getRelatedEntries($ctags, $eventData[$i]['id']);
                 if (is_array($passvar)) {
                    $eventData[$i]['properties']['related_entries'] .= $this->getRelatedEntriesHtml($passvar);
                }
entries.tpl

Code: Select all

            {$entry.freetag}
            {$entry.properties.related_entries}
            </div>
lg, Andreas

Re: Ähnliche Themen Plugin

Posted: Wed Feb 04, 2009 2:30 pm
by garvinhicking
Hi!

Okay, da waren zwei Bugs drin. Korrekt muss der einzufügende Teil so lauten (ich hab den ursprünglichen Eintrag korrigiert):

Code: Select all

                    $passvar = $this->getRelatedEntries($eventData[$i]['properties']['freetag_tags'], $eventData[$i]['id']);
                    if (is_array($passvar)) {
                        $eventData[$i]['related_entries'] .= $this->getRelatedEntriesHtml($passvar);
                    }
    
                    if (!isset($eventData[$i]['add_footer'])) {
                        $eventData[$i]['add_footer'] = '';
                    }
Dann $entry.related_entries nutzen.

Habs auch ins offizielle plugin (auskommentiert) eingefügt, damit man es so in zukunft leichter "freischalten" kann.


Grüße,
Garvin

Re: Ähnliche Themen Plugin

Posted: Wed Feb 04, 2009 4:38 pm
by A.Stark
Hallo Garvin,

alles im grünen Bereich! Klappt super!
Habs auch ins offizielle plugin (auskommentiert) eingefügt, damit man es so in zukunft leichter "freischalten" kann.
Perfekt.

Vielen Dank für Deine Hilfe.

Grüsse, Andreas