Page 1 of 1

News-Modul: Erst Kategoriename, dann News ausgeben

Posted: Mon Sep 01, 2008 8:18 am
by giessener
Hallo zusammen,

ich versuche herauszufinden, ob es möglich ist, beim News-Modul eine Ausgabe zu erreichen die wie folgt aussieht:

Code: Select all

<h3>Kategoriename</h3>
[schleife über alle enthaltenen News]
  Newstitel - Newscontent - Benutzerdefiniertes Feld
[/schleife]
Wichtig wäre mir, nicht in den eigentlichen Sourcecode einzugreifen, da ich dies nicht bei jedem Update wiederholen möchte.
Das browsecat-Template ist, soweit ich das sehe, ja leider nicht in der Lage auf die News zuzugreifen und in den anderen Templates kann ich zwar bei jeder News die Kategorie ausgeben, aber nicht nur einmal als Überschrift (naheliegend wäre das ja, da ich ja auch nach Kategorie sortiert ausgeben lassen kann.)

Hoffe es gibt eine Lösung und danke für die Hilfe!

Beste Grüße!

Re: News-Modul: Erst Kategoriename, dann News ausgeben

Posted: Mon Sep 01, 2008 4:13 pm
by NaN
Fehlt da etwa immer noch die smarty-Variable für die Ausgabe der Kategorie?

Dazu gabs schonmal nen Thread: http://forum.cmsmadesimple.org/index.ph ... #msg112049

Ich fürchte, da wirst Du um die Modifikationen vorerst nicht herumkommen.
Sind aber zum Glück nur zwei kleine Zeilen.

Re: News-Modul: Erst Kategoriename, dann News ausgeben

Posted: Tue Sep 02, 2008 7:24 am
by giessener
Danke für die schnelle Antwort!
Klingt ja vielversprechend, aber es funktioniert irgendwie nicht.

Habe die zwei Zeilen in action.default.php eingefügt, jetzt steht da, rund um 381:

Code: Select all

$smarty->assign('itemcount', count($entryarray));
$smarty->assign_by_ref('items', $entryarray);
if (isset($params['category']))
  $smarty->assign('catheader', $params['category']);
$smarty->assign('category_label', $this->Lang('category_label'));
$smarty->assign('author_label', $this->Lang('author_label'));
Dann in das Zusammenfassungs-Template vor die foreach geschrieben:

Code: Select all

<!-- Start News Display Template -->
{if $pagecount > 1}
  <p>
{if $pagenumber > 1}
{$firstpage} {$prevpage} 
{/if}
{$pagetext} {$pagenumber} {$oftext} {$pagecount}
{if $pagenumber < $pagecount}
 {$nextpage} {$lastpage}
{/if}
</p>
{/if}
<div class="SpeisekarteKategorie">
	{$catheader}
</div>
{foreach from=$items item=entry}
Die Ausgabe ist, dass einmal das leere DIV ausgegeben wird und danach sämtliche Einträge der unterschiedlichen Kategorien. Der Aufruf im Seitentemplate ist ohne Parameter.

Woran könnte es liegen?

Besten Dank für die Hilfe!

Re: News-Modul: Erst Kategoriename, dann News ausgeben

Posted: Tue Sep 02, 2008 7:46 am
by giessener
Habe gerade entdeckt, dass, wenn ich den Aufruf mit dem Parameter "category=xy" mache, die Kategorie ausgegeben wird. Nicht aber wenn ich ohne Parameter aufrufe. Mein unglaublich raffinierter Versuch eine Oberkategorie anzulegen und dann mit "category=xy *" alle Unterkategorien auszugeben, führte lediglich dazu, dass der Name der Oberkategorie ausgegeben worden ist.
Als Workaround wäre die Variante halbwegs geeignet, glücklich bin ich damit aber nicht, da der Backend-User dann ja immer, wenn er eine neue Kategorie angelegt hat, die Inhaltsseite verändern muss um dort den Aufruf der Kategorie einzufügen.

Oder hab ich vielleicht einfach etwas falsch gemacht?

Re: News-Modul: Erst Kategoriename, dann News ausgeben

Posted: Tue Sep 02, 2008 2:31 pm
by NaN
giessener wrote:
Habe gerade entdeckt, dass, wenn ich den Aufruf mit dem Parameter "category=xy" mache, die Kategorie ausgegeben wird. Nicht aber wenn ich ohne Parameter aufrufe.
Ja, sorry. Vergaß ich zu erwähnen.

giessener wrote:
Mein unglaublich raffinierter Versuch eine Oberkategorie anzulegen und dann mit "category=xy *" alle Unterkategorien auszugeben, führte lediglich dazu, dass der Name der Oberkategorie ausgegeben worden ist.
Ja, das ist in der Tat ein Problem, da die Kategorie-Überschrift davon abhängt, was als Category-Parameter angegeben wird.
D.h. es steht dann genau das als Kategorie da, was beim Modulaufruf angegeben ist.
Und ein Sternchen ist nunmal keine sinnvolle Kategorie sondern lediglich eine Art Steuerzeichen.

Wenn ich Dich richtig verstanden habe, willst Du alle Kategorien inklusive der dazugehörigen Artikel auf einer Seite anzeigen, oder?
Also in etwa so:

Oberkategorie 1

Kategorie 1
    Artikel 1
    Artikel 2
    Artikel 3
    ...

Kategorie 2
    Artikel 1
    Artikel 2
    Artikel 3
    ...
Kategorie 3
  ...

Oberkategorie 2
...

D.h. Du müsstest für jede Kategorie das News-Modul aufrufen.
Und jedesmal, wenn eine neue Oberkategorie hinzukommt, muss ein weiterer News-Aufruf in Template/Inhalt.
Mir schwebt da gerade eine Idee vor in Verbindung mit dem Parameter "browsecat".
Anstelle der News einer bestimmten Kategorie lässt Du dir alle Kategorien anzeigen.
Und im ListCategory-Template rufst Du dann das news-modul erneut auf mit der jeweils gerade angezeigten Kategorie.
Z.B.:

{foreach from=$categories item=category}
    {cms_module module="News" category="$category->name"}
{/foreach}

Oder so ähnlich.
Ist nur eine Idee. Habs noch nicht probiert.

Re: News-Modul: Erst Kategoriename, dann News ausgeben

Posted: Tue Sep 02, 2008 3:23 pm
by giessener
Ja, das ist, was ich meine.

Komme leider erst am Donnerstag dazu es auszuprobieren, werde dann berichten!

Danke schon mal bis hierhin!