Forum

DynPG Forum

Foren

Login

Suchen

Forenübersicht - Allgemeines Forum - Templatewechsel nach Suchfunktion (DynPG-Suche)

Patrick Wicki

Beiträge: 131

Templatewechsel nach Suchfunktion (DynPG-Suche)
Grüezi ins Forum
Ich habe eine Frage zur Suchfunktion. Unter dieser Testseite ist eine Suchfunktion von DynPG eingebaut. Ich habe dem Template ausserdem noch in der Seite einen H1-Titel erstellt. Wenn man nun beispielsweise nach wivisions , erscheint dies auch wunderbar.

Klicke ich nun aber auf einen Link bei den Suchergebnissen, wechselt mir DynPG zwar zum entsprechenden Artikel, jedoch wechselt er nicht die Seite. In meinem Beispiel von der Seite "suche.php" zu "teilnehmer.php".

Kann ich das irgendwie steuern?

Merci fuers Feedback.
Freundliche Grüsse
Patrick Wicki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wivisions GmbH -> www.wivisions.ch

23.06.2009 00:12

ZITIEREN | ANTWORTEN

Chris

Beiträge: 510

Gruezi Herr Wicki,

Soweit ich das beurteilen kann, gibt es folgende Möglichkeiten:

1. Sofern das Zieldokument aller Suchresultate immer dasselbe ist, kann innerhalb der Datei "suche.php" vor dem Aufruf von "Write_AllArticles()" folgendes gesetzt werden, damit die Links nicht auf die Datei "suche.php" selbst zurückweisen, sondern auf die folgendermassen angegebene Seite:

SetParam_PathToNextPage('wunschArtikelAnzeigeSeite.php')

2. Sollte das Zieldokument für die Suchresultat verschieden sein, zum Beispiel Artikel-A nach dateiA.php und Artikel-B nach dateiB.php oder alle Resultate aus Artikelgruppe-A nach dateiA.php und alles aus der Gruppe-B nach dateiB.php wird es schon um einiges komplizierter und müsste mM. nach über ein Custom-Template gesteuert werden. Damit im Standardtemplate dann nichts kaputt geht, würde ich das als erstes Kopieren und umbenennen: "tpl/MyCMS/default/articles.tpl" nach "tpl/MyCMS/searchresults/articles.tpl". Danach müsste dieses Template innerhalb der Datei "suche.php" vor dem Aufruf von "Write_AllArticles()" folgendermassen gesetzt werden:

SetupTemplate('searchresults')

Danach müsste noch das Template selbst angepasst werden, damit dann der Link nicht mehr über die Variabel "$LIST_REFER_TO" gesetzt wird, sondern halt hardcodiert und ArtikelID oder GruppenID abhängig. Das würde dann anstelle von $LIST_REFER_TO ungefähr so aussehen:

{dollarsign# ({$GROUP_ID} == 1) #} wunschArtikelAusGruppe1AnzeigeSeite.php&read_article={$id}
{dollarsign# End #}

"dollarsign" müsste durch $ ersetzt werden, damit es funktioniert. Das ist hier nur so, damit es vom Template nicht automatisch interpretiert wird und der Forumseintrag funktioniert ;).

Damit würde der Link der Artikel aus der Grupp mit der ID 1 auf die angegebene Seite zeigen!

Damit ist ohne Custom-Template also nur eine Zieladresse für alle Suchresultate definierbar, diese kann aber "bei Bedarf" selbst angegeben werden. Wenn das nicht der Fall ist, wird die aufrufende Seite automatisch zur Zieladresse.

Das ganze über ein Custom-Template zu lösen ist nicht ganz so einfach, aber wie Sie sehen, ebenfalls möglich ;)

Vielleicht hat hier ja jemand noch eine einfachere Lösung parat...

mfg
chris.w.
*************************************
Christoph Würsch
Urbanización Aranjuez
Asturianas No° 23
Asuncion / Paraguay
-------------------------------------
Tel: +595 (0)21 332 984
-------------------------------------
http://www.chriswuersch.com
*************************************

23.06.2009 02:00

ZITIEREN | ANTWORTEN

Patrick Wicki

Beiträge: 131

Hallo Herr Würsch

Merci fuer die Erläuterung. Bin noch nicht dazugekommen aber werde es ausprobieren.
Freundliche Grüsse
Patrick Wicki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wivisions GmbH -> www.wivisions.ch

25.06.2009 16:24

ZITIEREN | ANTWORTEN

Patrick Wicki

Beiträge: 131

Sorry, versehentlich hier einen neuen Beitrag erstellt.

Link zum neuen Beitrag "Horizontale- / vertikale Navigation"
Freundliche Grüsse
Patrick Wicki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wivisions GmbH -> www.wivisions.ch

25.06.2009 16:30

ZITIEREN | ANTWORTEN

Patrick Wicki

Beiträge: 131

Zitat
... über ein Custom-Template gesteuert werden. Damit im Standardtemplate dann nichts kaputt geht, würde ich das als erstes Kopieren und umbenennen: "tpl/MyCMS/default/articles.tpl" nach "tpl/MyCMS/searchresults/articles.tpl". Danach müsste dieses Template innerhalb der Datei "suche.php" vor dem Aufruf von "Write_AllArticles()" folgendermassen gesetzt werden:

SetupTemplate('searchresults')

Danach müsste noch das Template selbst angepasst werden, damit dann der Link nicht mehr über die Variabel "$LIST_REFER_TO" gesetzt wird, sondern halt hardcodiert und ArtikelID oder GruppenID abhängig. Das würde dann anstelle von $LIST_REFER_TO ungefähr so aussehen:

{dollarsign# ({$GROUP_ID} == 1) #} wunschArtikelAusGruppe1AnzeigeSeite.php&read_article={$id}
{dollarsign# End #}


Grüezi Herr Wuersch
1. Da muss ich leider passen. Habe es versucht aber verstehe den Teil nicht wo und wie ich den Codeabschnitt {dollarsign#.... ...dollarsign# end#} einsetzen muss. Heisst das ich muss fuer jede vorgegebene .php-Seite auch die zugehoerige ID verweisen? Und wo genau muss ich diesen Code im Custom-Template einsetzen? Koennen Sie mir dies vielleicht genauer erlaeutern?

2. Das DynPG die Ausgabe auf einer Seite wie z.B. searchresults.php ausgibt ist ok. Nur sollte doch bei einem Klick z.B. auf einen Artikel-Header dieser Artikel dann zu der entsprechenden Seite gesteuert werden und nicht wieder auf der Seite "searchresults.php"?

Ein Beispiel auf der Seite dynpg.ch. Ich suche oben beim Suchfeld nach "dynpg". Es erscheinen die Artikel die "dynpg" enthalten. Diese Auflistung wird in der Seite "searchresults.php" angezeigt. Nun klicke ich auf den Artikellink "Update von 3.1.5+ auf 3.4.0" Der ganze Artikel wird wieder in "searchresults.php" angezeigt. Warum nicht unter "news.php", zumal ich in der URL-Leiste nur "searchresults" gegen "news" austauschen kann. Der Rest bleibt genau gleich :-)

Oder verstehe ich da etwas falsch?

Ich danke Ihnen fuer Ihr Feedback.
Freundliche Grüsse
Patrick Wicki
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
wivisions GmbH -> www.wivisions.ch

13.08.2009 23:53

ZITIEREN | ANTWORTEN

Chris

Beiträge: 510

Gruezi Herr Wicki,

Zitat
1. Da muss ich leider passen. Habe es versucht aber verstehe den Teil nicht wo und wie ich den Codeabschnitt {dollarsign#.... ...dollarsign# end#} einsetzen muss. Heisst das ich muss fuer jede vorgegebene .php-Seite auch die zugehoerige ID verweisen? Und wo genau muss ich diesen Code im Custom-Template einsetzen? Koennen Sie mir dies vielleicht genauer erlaeutern?


Richtig - es bedeutet das Sie eigentlich für jede .php-Seite welche Artikel anzeigen und über die Suche einen solchen Artikel auch gefunden werden kann, in diesem Template definiert werden müsste. Normalerweise ist es ja so, das jede Artikel-Gruppe eine eigene PHP-Seite zugewiesen hat und genau das müssen wir jetzt im Template umsetzen (Sofern Artikel aus einer gleichen Gruppe auf verschiedenen .php Seiten angezeigt werden, wird das ganze noch komplizierter und würde hier den Rahmensprengen). Am besten schauen Sie in den Gruppen mal nach, welche GruppenID auf welche .php-Seite verlinken sollte. Auf dieser Basis können Sie dann den Code fürs Template erstellen. Dieser wiederum, ersetzt einfach den folgenden Text "{$LIST_REFER_TO}" welcher im articles.tpl auf Zeile 26 zu finden wäre.

Ein Beispiel...
- Folgende Gruppen sind im DynPG erfasst und verweisen jeweils auf die angegebene .php-Seite:
ID 1 - Diverses - index.php
ID 2 - News - news.php
ID 3 - Whatever - whatever.php

- Daraus resultiert folgender Template Code:
{dollarsign# ({$GROUP_ID} == 1) #}
index.php&read_article={$id}
{dollarsign# End #}
{dollarsign# ({$GROUP_ID} == 2) #}
news.php&read_article={$id}
{dollarsign# End #}
{dollarsign# ({$GROUP_ID} == 3) #}
whatever.php&read_article={$id}
{dollarsign# End #}
{dollarsign# ({$GROUP_ID} > 3) #}
{$LIST_REFER_TO}
{dollarsign# End #}

Die letzten 3 Zeilen habe ich noch dazugefügt, damit Artikel welche nicht in einer der drei Gruppen (1,2,3) gespeichert sind, trotzdem in den Suchresultaten verlinkt werden.

Zitat
2. Das DynPG die Ausgabe auf einer Seite wie z.B. searchresults.php ausgibt ist ok. Nur sollte doch bei einem Klick z.B. auf einen Artikel-Header dieser Artikel dann zu der entsprechenden Seite gesteuert werden und nicht wieder auf der Seite "searchresults.php"?


In DynPG werden Links auf Artikeldetails immer auf die Seite zurückweisen, wo die Artikel auch ausgegeben wurden, ausser es ist über den globalen Parameter SetParam_PathToNextPage() eine andere Seite definiert, welche dann aber für ALLE Suchresultate gilt. DynPG weiss ja nicht, auf welcher Seite der Artikel denn angezeigt werden soll, sondern weiss nur auf welcher dieser momentan angezeigt wird. Ansonsten müsste man bei den Artikeln ja eine Seite angeben können, welche für solche Zwecke dann verwendet wird. Das macht das ganze System dann aber unglaublich unübersichtlich und für einen Anwender auch nicht mehr sinnvoll verwaltbar.

Ich hoffe ich konnte Ihnen hiermit nun alle Unklarheiten aus dem Wege schaffen und wünsche ein wunderschönes Wochenende...

chris.w.
*************************************
Christoph Würsch
Urbanización Aranjuez
Asturianas No° 23
Asuncion / Paraguay
-------------------------------------
Tel: +595 (0)21 332 984
-------------------------------------
http://www.chriswuersch.com
*************************************

14.08.2009 22:23

ZITIEREN | ANTWORTEN