Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 26. Juni 2016 13:44

rage_all
kennt CMS/ms
Ort: Augsburg
Registriert: 09. März 2011
Beiträge: 288

Newsmodul der 2.1.4

Hallo zusammen...

Ich hab mal wieder einen Knoten im Hirn ... dieses ganze foreach und if-then macht mich fertig.  cry

Folgendermaßen: Ich hätte gerne News in einem Bootstrap-Tab
Dafür müssen die Daten wie folgt ausgegeben werden:

<je-news-artikel-innerhalb-einer-kategorie>
Name der Kategorie
</je-news-artikel-innerhalb-einer-kategorie>
<je-news-artikel-in-einer-kategorie>
  <div id="Name der Kategorie">
    <div id="Newsartikel">
    ...
    </div><!-- eof THIS newsartikel in dieser einen Kategorie //-->
  </div><!-- eof alle newsartikel in dieser einen Kategorie //-->
</je-news-artikel-in-einer-kategorie>

Zusätzliche, wichtige Funktionen wären noch:

  • 'active'-Klasse beim ersten Artikel in der ersten Kategorie - danach nie wieder, auch wenn ich drei Kategorien hab mit nur je einem Artikel - die ja alle drei "einzig", bzw. "zuerst" in ihrer Kategorie sind. Es gibt nur eine einzige 'active' Kategorie. Punkt.

  • <hr> nur dann, wenn ich zwei Artikel innerhalb derselben Kategorie hab. Wenn zwei Artikel in zwei Kategorien, dann keinen <hr>.

Was ich jetzt so hab, erfüllt das alles nur halb:

  • Alle Artikel werden in allen Kategorien ausgegeben (wie hab ich das nur geschafft?).

  • Alle ersten Artikel innerhalb ihrer eigenen Kategorien haben eine 'active' Klasse.

  • Sobald mehr als 1 Artikel vorhanden ist, unabhängig von der Kategorie, hab ich immer den <hr>.

Irre.

Hier mal mein Template im bisherigen Ansatz:

[== Smarty ==]
{strip}
<article id="news" class="news-summary"><!-- news-summary wrapper -->
  <h3>Neuigkeiten</h3>
  <ul class="category-list nav nav-tabs" role="tablist">
    {foreach from=$cats item='node' name='categories'}
    <li role="presentation"{if $node.count == 0} class="disabled"{/if}{if $smarty.foreach.categories.first} class="active"{/if}>
    {if $node.count > 0} <a href="#{$node.news_category_name}" aria-controls="{$node.news_category_name}" role="tab" data-toggle="tab">{$node.news_category_name}</a> {else} <a>{$node.news_category_name}</a>{/if}
    </li>
    {/foreach}
  </ul>
  <div class="tab-content"> {foreach from=$cats item='node' name='categories'}     {foreach from=$items item='entry' name='newsitems'}
    <div role="tabpanel" class="tab-pane fade{if $smarty.foreach.categories.first} active in{/if}" id="{$node.news_category_name}"><!-- wrapping each article --> {if $smarty.foreach.newsitems.first!=true}
      <hr />
      {/if}
      <section class="news-article row">
        <div class="meta col-lg-2 col-md-2 col-sm-6 col-xs-12">
          <time class="date" datetime="{$entry->postdate|date_format:'%Y-%m-%d'}"> <span class="weekday"> {$entry->postdate|date_format:'%A'} </span> <span class="month"> {$entry->postdate|date_format:'%B'} </span> <span class="day"> {$entry->postdate|date_format:'%d'} </span> </time>
        </div>
        <!-- eof meta data //-->
        <div class="newscontent col-lg-10 col-md-10 col-sm-6 col-xs-12">
          <header>
            <h4><a href="{$entry->moreurl}" title="{$entry->title|cms_escape:htmlall}">{$entry->title|cms_escape}</a></h4>
          </header>
          {if $entry->summary}
          <p>{$entry->summary|strip_tags}</p>
          <span class="more">{$entry->morelink} »</span> {else if $entry->content}
          <p>{$entry->content|strip_tags}</p>
          {/if}
          <p><small><em>Von <span class="author">{$entry->authorname}</span> erstellt, in der Kategorie <span class="category">{$entry->category}</span> </em></small></p>
        </div>
        <!-- eof newscontent //--> </section>
      <!-- eof news-article //--> </div>
    <!-- tab-pane //--> {/foreach}{* articles *}     {/foreach} </div>
  <!-- eof tab-content //--> </article>
<!-- eof news-summary wrapper //--> {/strip}

Kann mir bitte jemand erklären, wie ich ins Template bringen kann:

{Kategorie}
  {Artikel ausschließlich innerhalb dieser Kategorie}
{/Kategorie}

Dann schaff ich vielleicht auch die count() usw. selbst hinzubekommen...  big_smile

Vielen lieben Dank für Eure Mühe!

Ist wahrscheinlich nur eine Kleinigkeit, aber ich seh den Wald vor lauter Bäumen gerade gar nicht...

Offline