[GELÖST]Newsmodul: Articleid für das Paging mitgeben
-
- Forum Members
- Posts: 45
- Joined: Thu Jun 10, 2010 7:11 am
[GELÖST]Newsmodul: Articleid für das Paging mitgeben
Hallo,
ich habe im Newsmodul nach 3 Einträgen das Paging der News gesetzt {news number='3' ...}.
Wenn ich nun aus dem Newsmodul über den Link "[weiterlesen...]" in die Detailansicht des Artikels gehe und von dort aus über das Paging eine Seite weiter oder auf die letzte Seite der Newsartikel springen möchte, erhalte ich im Content die Meldung "Artikel nicht gefunden".
Das liegt soweit ich das verstanden habe daran, dass in den vom CMS generierten Links {nextpage} und {lastpage} die articleid des gerade angezeigten Artikles nicht gesetzt wird.
Wie kann ich die articleid setzen, dass beim Paging der gerade angesehene Artikel erscheint und nicht die Meldung "Artikel nicht gefunden"?
Vielen Dank im Voraus für Eure Hilfe,
Markus
ich habe im Newsmodul nach 3 Einträgen das Paging der News gesetzt {news number='3' ...}.
Wenn ich nun aus dem Newsmodul über den Link "[weiterlesen...]" in die Detailansicht des Artikels gehe und von dort aus über das Paging eine Seite weiter oder auf die letzte Seite der Newsartikel springen möchte, erhalte ich im Content die Meldung "Artikel nicht gefunden".
Das liegt soweit ich das verstanden habe daran, dass in den vom CMS generierten Links {nextpage} und {lastpage} die articleid des gerade angezeigten Artikles nicht gesetzt wird.
Wie kann ich die articleid setzen, dass beim Paging der gerade angesehene Artikel erscheint und nicht die Meldung "Artikel nicht gefunden"?
Vielen Dank im Voraus für Eure Hilfe,
Markus
Last edited by markus0711 on Thu Sep 16, 2010 11:46 am, edited 1 time in total.
Re: Newsmodul: Articleid für das Paging mitgeben
Ich verstehe leider nur Bahnhof.
Was hat denn das Paging in der Detailansicht zu suchen?
Was hat denn das Paging in der Detailansicht zu suchen?
Re: Newsmodul: Articleid für das Paging mitgeben
Normalerweise ist das Paging nur für die Zusammenfassungsansicht gedacht und wird daher (vermutlich) im Detail-Modus nicht funktionieren.
Nur ist mir noch nicht ganz klar, was du mit dem Paging willst - soll das "Next" auf die nächste Zusammenfassungsseite oder auf den nächsten Artikel verweisen?
PS: Die jeweils verfügbaren Smarty-Variablen kannst du dir mit dem Tag {get_template_vars} ausgeben lassen.
Nur ist mir noch nicht ganz klar, was du mit dem Paging willst - soll das "Next" auf die nächste Zusammenfassungsseite oder auf den nächsten Artikel verweisen?
PS: Die jeweils verfügbaren Smarty-Variablen kannst du dir mit dem Tag {get_template_vars} ausgeben lassen.
-
- Forum Members
- Posts: 45
- Joined: Thu Jun 10, 2010 7:11 am
Re: Newsmodul: Articleid für das Paging mitgeben
Sorry, da habe ich mich wohl nicht verständlich ausgedrückt.
Es wird dann die entsprechende Seite der Zusammenfassung angezeigt. Im Content, der davor mit der Detailansicht gefüllt war, erscheint nun "Artikel nicht gefunden".
Ich möchte aber, dass die Detailansicht des Newsartikels stehen bleibt.
Dazu müßte wohl die articleid mit übergeben werden.
Probierts mal aus unter www.bite.de
Ich will aus der Detailansicht eines Newsartikles über das Paging der Zusammenfassungsansicht auf die nächste oder letzte Seite der Zusammenfassung gehen. Das sind die "> >>" Zeichen in der Zusammenfassungsansicht.cyberman wrote: Normalerweise ist das Paging nur für die Zusammenfassungsansicht gedacht und wird daher (vermutlich) im Detail-Modus nicht funktionieren.
Nur ist mir noch nicht ganz klar, was du mit dem Paging willst - soll das "Next" auf die nächste Zusammenfassungsseite oder auf den nächsten Artikel verweisen?
Es wird dann die entsprechende Seite der Zusammenfassung angezeigt. Im Content, der davor mit der Detailansicht gefüllt war, erscheint nun "Artikel nicht gefunden".
Ich möchte aber, dass die Detailansicht des Newsartikels stehen bleibt.
Dazu müßte wohl die articleid mit übergeben werden.
Die articleid ist über {get_template_vars} nicht zu kriegen. Oder ich hab sie übersehen.cyberman wrote: PS: Die jeweils verfügbaren Smarty-Variablen kannst du dir mit dem Tag {get_template_vars} ausgeben lassen.
Probierts mal aus unter www.bite.de
Last edited by markus0711 on Thu Sep 09, 2010 11:20 am, edited 1 time in total.
Re: Newsmodul: Articleid für das Paging mitgeben
Ah, jetzt verstehe ich.
Die Article ID wirst Du im Zusammenfassungstemplate auch nicht finden.
Dort gibt es ja auch keinen Article.
Oder gibts die etwa auch nicht im Detailtemplate?
Wo hast Du denn {get_template_vars} ausprobiert?
Dein Template ist etwas seltsam aufgebaut.
Die Spalte rechts hat die id="left", aber float:right und kommt vor der linken Spalte.
Das macht das ganze schwierig.
Versuch mal den Inhalt (also id="main") vor die rechte Spalte zu setzen und mit float:left zu versehen. Dann kommt der Inhalt (die Detailansicht) vor der Zusammenfassung. Eventuell kannst Du dann im Zusammenfassungstemplate auf die Article ID aus der Detailansicht zugreifen. (Sofern sie überhaupt irgendwo in irgendeinem Template vorhanden ist.)
Die Article ID wirst Du im Zusammenfassungstemplate auch nicht finden.
Dort gibt es ja auch keinen Article.
Oder gibts die etwa auch nicht im Detailtemplate?
Wo hast Du denn {get_template_vars} ausprobiert?
Dein Template ist etwas seltsam aufgebaut.
Die Spalte rechts hat die id="left", aber float:right und kommt vor der linken Spalte.
Das macht das ganze schwierig.
Versuch mal den Inhalt (also id="main") vor die rechte Spalte zu setzen und mit float:left zu versehen. Dann kommt der Inhalt (die Detailansicht) vor der Zusammenfassung. Eventuell kannst Du dann im Zusammenfassungstemplate auf die Article ID aus der Detailansicht zugreifen. (Sofern sie überhaupt irgendwo in irgendeinem Template vorhanden ist.)
-
- Forum Members
- Posts: 45
- Joined: Thu Jun 10, 2010 7:11 am
Re: Newsmodul: Articleid für das Paging mitgeben
Schon im Detailtemplate, habe die Article ID beim durchlaufen von $entry auch gefunden!!NaN wrote:
Ah, jetzt verstehe ich.
Die Article ID wirst Du im Zusammenfassungstemplate auch nicht finden.
Dort gibt es ja auch keinen Article.
Oder gibts die etwa auch nicht im Detailtemplate?
Wo hast Du denn {get_template_vars} ausprobiert?
Kann ich bereits ohne diesen Umbau die Article ID ins Zusammenfassungstemplate bringen bzw.NaN wrote: Dein Template ist etwas seltsam aufgebaut.
Die Spalte rechts hat die id="left", aber float:right und kommt vor der linken Spalte.
Das macht das ganze schwierig.
Versuch mal den Inhalt (also id="main") vor die rechte Spalte zu setzen und mit float:left zu versehen. Dann kommt der Inhalt (die Detailansicht) vor der Zusammenfassung. Eventuell kannst Du dann im Zusammenfassungstemplate auf die Article ID aus der Detailansicht zugreifen. (Sofern sie überhaupt irgendwo in irgendeinem Template vorhanden ist.)
Wie greife ich aus dem Zusammenfassungstemplate auf die Article ID zu?
Last edited by markus0711 on Thu Sep 09, 2010 1:12 pm, edited 1 time in total.
Re: Newsmodul: Articleid für das Paging mitgeben
Die Funktionen werden der Reihe nach abgearbeitet.
D.h. wenn das Zusammenfassungstemplate vor dem Detailtemplate steht, existiert im Zusammenfassungstemplate noch nichts, was mit den Details zu hat. Die werden ja erst danach verarbeitet.
Umgekehrt allerdings schon.
Dann könntest Du auf die gleiche Weise wie Du auf die article ID im Detailtemplate zugreifst diese auch im Zusammenfassungstemplate nutzen.
Einziges Problem ist, dass im Zusammenfassungstemplate die Variable {$entry} wieder überschrieben wird.
Entweder Du änderst das Zusammenfassungstemplate so ab, dass in der {foreach} Schleife eine andere Variable verwendet wird:
Oder Du erstellst mit Hilfe von {assign} im Detailtemplate eine neue Variable, die nur die Artikel ID enthält:
Dann solltest Du diese im Zusammenfassungstemplate mit
verwenden können.
Eine andere Möglichkeit wäre {$smarty.get} zu verwenden.
Ist aber nicht so dynamisch. Sollte in Deinem Falle aber ausreichen.
D.h. ohne Umbau könntest Du im Zusammenfassungstemplate so an die Article ID herankommen:
Ich weiß allerdings nicht inwiefern Dir die Artikel ID wirklich weiterhilft, da die Paginierungslinks im Zusammenfasungstemplate ja nicht direkt drin stehen.
Dort steht ja nur {$prevpage}. Da ist also keine Adresse an die Du diese Artikel ID dranhängen könntest.
D.h. wenn das Zusammenfassungstemplate vor dem Detailtemplate steht, existiert im Zusammenfassungstemplate noch nichts, was mit den Details zu hat. Die werden ja erst danach verarbeitet.
Umgekehrt allerdings schon.
Dann könntest Du auf die gleiche Weise wie Du auf die article ID im Detailtemplate zugreifst diese auch im Zusammenfassungstemplate nutzen.
Einziges Problem ist, dass im Zusammenfassungstemplate die Variable {$entry} wieder überschrieben wird.
Entweder Du änderst das Zusammenfassungstemplate so ab, dass in der {foreach} Schleife eine andere Variable verwendet wird:
Code: Select all
{foreach from=$items item=entry2}
{$entry2->titlelink}
{/foreach}
Code: Select all
{assign var="article_id" value="$entry->id"}
Code: Select all
{$article_id}
Eine andere Möglichkeit wäre {$smarty.get} zu verwenden.
Ist aber nicht so dynamisch. Sollte in Deinem Falle aber ausreichen.
D.h. ohne Umbau könntest Du im Zusammenfassungstemplate so an die Article ID herankommen:
Code: Select all
{$smarty.get.cntnt01articleid}
Dort steht ja nur {$prevpage}. Da ist also keine Adresse an die Du diese Artikel ID dranhängen könntest.
-
- Forum Members
- Posts: 45
- Joined: Thu Jun 10, 2010 7:11 am
Re: Newsmodul: Articleid für das Paging mitgeben
Danke erstmal für die Hilfe, ich versuch mal, das einzubauen.NaN wrote: Ich weiß allerdings nicht inwiefern Dir die Artikel ID wirklich weiterhilft, da die Paginierungslinks im Zusammenfasungstemplate ja nicht direkt drin stehen.
Dort steht ja nur {$prevpage}. Da ist also keine Adresse an die Du diese Artikel ID dranhängen könntest.
Allerdings sehe ich auch die Problematik auf mich zu kommen wie du es in deinem letzten Satz beschrieben hast.
Hast du vielleicht einen anderen Lösungsansatz?
Re: Newsmodul: Articleid für das Paging mitgeben
Ein anderer Lösungsansatz wäre, das Modul zu hacken und dafür zu sorgen, dass die Artikel ID automatisch mit in die Links eingebaut wird.
Du könntest aber auch mit einem regulärem Suchmuster im Summary-Template die Link-Addresse manipulieren.
Z.B. so:
Du könntest aber auch mit einem regulärem Suchmuster im Summary-Template die Link-Addresse manipulieren.
Z.B. so:
Code: Select all
{if isset($smarty.get.cntnt01articleid)}
{$prevpage|regex_replace:"/href=['\"]([^'\"]*)['\"]/":"href=\"\\1&cntnt01articleid=`$smarty.get.cntnt01articleid`\""}
{/if}
-
- Forum Members
- Posts: 45
- Joined: Thu Jun 10, 2010 7:11 am
Re: Newsmodul: Articleid für das Paging mitgeben
Habe den Code von dir eingebaut.
Folgender Link wird z.B. generiert in $nextpage:
.../cmsms/index.php?mact=News,mee334,default,1&mee334number=3&mee334detailpage=news&mee334moretext=weiterlesen...&mee334category=General&mee334pagenumber=2&mee334returnid=75&page=75&cntnt01articleid=11
Trotz der Article ID kommt bei Klick auf den Link im Content das bekannte "Artikel nicht gefunden".
Die dynamisch erzeugten Links im Zusammenfassungstemplate zu den Artikeln sehen dagegen so aus:
.../cmsms/index.php?mact=News,cntnt01,detail,0&cntnt01articleid=10&cntnt01origid=75&cntnt01returnid=75&cntnt01returnid=75
Ich müsste wohl da wohl einen Mix finden?
Und was bedeutet im ersten Link "mee334" und im zweiten "cntnt01"?
Kann denn das so schwer sein?
Folgender Link wird z.B. generiert in $nextpage:
.../cmsms/index.php?mact=News,mee334,default,1&mee334number=3&mee334detailpage=news&mee334moretext=weiterlesen...&mee334category=General&mee334pagenumber=2&mee334returnid=75&page=75&cntnt01articleid=11
Trotz der Article ID kommt bei Klick auf den Link im Content das bekannte "Artikel nicht gefunden".
Die dynamisch erzeugten Links im Zusammenfassungstemplate zu den Artikeln sehen dagegen so aus:
.../cmsms/index.php?mact=News,cntnt01,detail,0&cntnt01articleid=10&cntnt01origid=75&cntnt01returnid=75&cntnt01returnid=75
Ich müsste wohl da wohl einen Mix finden?
Und was bedeutet im ersten Link "mee334" und im zweiten "cntnt01"?
Kann denn das so schwer sein?

Last edited by markus0711 on Fri Sep 10, 2010 8:58 am, edited 1 time in total.
Re: Newsmodul: Articleid für das Paging mitgeben
mee334 und cntnt01 sind IDs.
Die erste ist eine zufallsgenerierte ID. Die zweite sagt dem CMS, dass hier jetzt die Ausgabe des Moduls im Inhalt erfolgen soll. Aber irgendwie scheint das noch nicht ganz so zu klappen wie ich das dachte. Du versuchst im Prinzip mit einer Modulinstanz die Ausgabe von zwei verschiedenen Instanzen zu steuern. Das geht aber leider nicht. Zumindest nicht so einfach. Denn das Modul in der rechten Spalte achtet nur auf Parameter mit der ID me334. Das cntnt01 geht da völlig unter, weil es derzeit kein Modul gibt, das auf diese ID reagiert. Aber schonmal schön zu sehen, dass das mit dem regex_replace fuktioniert
Mit diesen IDs werden die einzelnen Instanzen eines Moduls identifiziert.
Man kann ja ein und dassselbe Modul mehrmals im Template verwenden.
Damit das CMS weiß, zu welchem Modul die jeweiligen Parameter bzw. die jeweilige Ausgabe gehört, benötigt es diese IDs.
Wie sieht denn das Seiten-Template aus?
Steht dort an der Stelle wo die details ausgegeben werden nur {content}?
Dort müsste ein weiteres Modul stehen, welches dann den cntnt01 Parameter verarbeitet...
Folgeder Ansatz: Prüfe im Template, ob die Artikel ID vorhanden ist.
Wenn ja, dann rufe das News Modul mit action="details" und aticleid="article ID" auf. Wenn nicht, nur den Inhalt.
Bsp.:
Wenn man die Seite aufruft, wird der Inhalt angezeigt.
Wählt man einen News-Artikel wird der News-Artikel im Inhalt angezeigt.
Wenn man jetzt aber die manipulierten Vor- und Zurück-Links anwählt, wird ja die Variable cntnt01articleid mit übergeben. Jetzt wird nicht mehr der Inhalt angzeigt, sondern das News-Modul mit der Aktion "Zeige mir die Details von dem Artikel mit folgender id ... ".
Somit sollte es funktionieren.
Die erste ist eine zufallsgenerierte ID. Die zweite sagt dem CMS, dass hier jetzt die Ausgabe des Moduls im Inhalt erfolgen soll. Aber irgendwie scheint das noch nicht ganz so zu klappen wie ich das dachte. Du versuchst im Prinzip mit einer Modulinstanz die Ausgabe von zwei verschiedenen Instanzen zu steuern. Das geht aber leider nicht. Zumindest nicht so einfach. Denn das Modul in der rechten Spalte achtet nur auf Parameter mit der ID me334. Das cntnt01 geht da völlig unter, weil es derzeit kein Modul gibt, das auf diese ID reagiert. Aber schonmal schön zu sehen, dass das mit dem regex_replace fuktioniert

Mit diesen IDs werden die einzelnen Instanzen eines Moduls identifiziert.
Man kann ja ein und dassselbe Modul mehrmals im Template verwenden.
Damit das CMS weiß, zu welchem Modul die jeweiligen Parameter bzw. die jeweilige Ausgabe gehört, benötigt es diese IDs.
Wie sieht denn das Seiten-Template aus?
Steht dort an der Stelle wo die details ausgegeben werden nur {content}?
Dort müsste ein weiteres Modul stehen, welches dann den cntnt01 Parameter verarbeitet...
Folgeder Ansatz: Prüfe im Template, ob die Artikel ID vorhanden ist.
Wenn ja, dann rufe das News Modul mit action="details" und aticleid="article ID" auf. Wenn nicht, nur den Inhalt.
Bsp.:
Code: Select all
{content assign="content"}
{if isset($smarty.get.cntnt01articleid)}
{news action="details" articleid="$smarty.get.cntnt01articleid"}
{else}
{$content}
{/if}
Wählt man einen News-Artikel wird der News-Artikel im Inhalt angezeigt.
Wenn man jetzt aber die manipulierten Vor- und Zurück-Links anwählt, wird ja die Variable cntnt01articleid mit übergeben. Jetzt wird nicht mehr der Inhalt angzeigt, sondern das News-Modul mit der Aktion "Zeige mir die Details von dem Artikel mit folgender id ... ".
Somit sollte es funktionieren.
Last edited by NaN on Fri Sep 10, 2010 10:27 am, edited 1 time in total.
-
- Forum Members
- Posts: 45
- Joined: Thu Jun 10, 2010 7:11 am
Re: Newsmodul: Articleid für das Paging mitgeben
NaN wrote:
An dieser Stelle
{news action="details" articleid="$smarty.get.cntnt01articleid"}
kommt der Fehler:
string(126) "Smarty error: [in tpl_body:24 line 105]: syntax error: $smarty. is an unknown reference (Smarty_Compiler.class.php, line 2129)"
Ich habe deshalb mal die articleid im Aufruf hart gesetzt.
Dann gibt es zwar keinen Fehler mehr, aber der Artikel erscheint nicht sondern wieder " Artikel nicht gefunden".
Mir scheint, dass die If Abfrage gar nicht ausgeführt wird sondern bereits vorher ein Abbruch erfolgt.
Last edited by markus0711 on Fri Sep 10, 2010 11:16 am, edited 1 time in total.
Re: Newsmodul: Articleid für das Paging mitgeben
Nee, der Fehler sind die Anführungszeichen 
(das passiert mir immer wieder...
)
Versuchs mal so :
Dass die IF-Abfrage nicht ausgeführt wird, liegt daran, dass in Deinen Vor-Zurück-Links die Artikel ID nicht mehr angegeben ist. Du musst hier die Artikel ID noch dranhängen.

(das passiert mir immer wieder...

Versuchs mal so :
Code: Select all
{news action="details" articleid=$smarty.get.cntnt01articleid}
Last edited by NaN on Fri Sep 10, 2010 11:57 am, edited 1 time in total.
-
- Forum Members
- Posts: 45
- Joined: Thu Jun 10, 2010 7:11 am
Re: Newsmodul: Articleid für das Paging mitgeben
OK, der Fehler ist weg.
Im Vor/ Zurück Link des Paging ist die Article ID vorhanden, z.B.:
.../cmsms/index.php?mact=News,mee334,default,1&mee334number=3&mee334detailpage=news&mee334moretext=weiterlesen...&mee334category=General&mee334pagenumber=1&mee334returnid=75&mee334returnid=75&page=75&cntnt01articleid=2
Trotzdem kommt "Artikel nicht gefunden".
Im Vor/ Zurück Link des Paging ist die Article ID vorhanden, z.B.:
.../cmsms/index.php?mact=News,mee334,default,1&mee334number=3&mee334detailpage=news&mee334moretext=weiterlesen...&mee334category=General&mee334pagenumber=1&mee334returnid=75&mee334returnid=75&page=75&cntnt01articleid=2
Trotzdem kommt "Artikel nicht gefunden".
Re: Newsmodul: Articleid für das Paging mitgeben
Hm, dann bin ich mit meinem Latein so langsam am Ende.
Hab auf Deine verlinkte Seite geschaut, und da ist die articleid nicht im Link.
Versuch mal das im Template {$smarty.get|print_r}
Damit sollten alle übergebenen Variablen aufgelistet werden.
Da muss doch irgendwann die articleid mit auftauchen.
(Bei Änderungen am Template ab und zu mal den Zwischenspeicher löschen)
Hab auf Deine verlinkte Seite geschaut, und da ist die articleid nicht im Link.
Versuch mal das im Template {$smarty.get|print_r}
Damit sollten alle übergebenen Variablen aufgelistet werden.
Da muss doch irgendwann die articleid mit auftauchen.
(Bei Änderungen am Template ab und zu mal den Zwischenspeicher löschen)