Individuelle Darstellung für versch. Kategorien

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
radarin
Regular
Posts: 150
Joined: Sat Nov 25, 2006 5:33 pm
Location: St.Gallen/Schweiz
Contact:

Individuelle Darstellung für versch. Kategorien

Post by radarin »

hallo zusammen
ich hab die 'entries.tpl' so angepasst, dass vor dem titel in kleines symbol erscheint. nun möchte ich aber das symbol der kategorie anpassen. wie kriege ich das hin? bekomme ständig fehlermeldungen von der smarty template. php seite includen funktioniert, aber mit der ausgabe klemmt es dann wieder...

gruss rene
www.darin.ch - blog.darin.ch - rad.darin.ch
radarin
Regular
Posts: 150
Joined: Sat Nov 25, 2006 5:33 pm
Location: St.Gallen/Schweiz
Contact:

Post by radarin »

ist das wirklich so kompliziert..? :roll:
www.darin.ch - blog.darin.ch - rad.darin.ch
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Welches Icon genau meinst Du denn?

Wenn Du fehlermeldungen bekommst, würde dir evtl. eher jemand helfen wenn Du diese Meldungen mitteilst, genauso wie die Änderungen die Du versucht hast zu machen.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
radarin
Regular
Posts: 150
Joined: Sat Nov 25, 2006 5:33 pm
Location: St.Gallen/Schweiz
Contact:

Post by radarin »

Ich habe in meiner 'entries.tpl' vor dem Titel des Beitrages ein kleines Bildchen eingefügt. (Pinnadel) Das wird bei allen Beirägen angezeigt. In der Kategorie 'Tagebuch' soll ein anderes Icon angezeigtwerden (Kalenderblatt).

Das Datum wird unter dem Titel angezeigt. Und eben wieder in der Kategorie 'Tagebuch' soll das Datum anders, nämlich vor dem Titel auf der selben Zeile ausgegeben werden.

Mein Problem ist nun die SMARTY Template Engine. Wie kann ich da direkt 'IF Kategorie gleich Tagebuch, sonst' einbauen?
Ich kann zwar auch eine PHP-Seite ins Template includen, aber dann hane ich die Variablen im Smarty-Format nicht mehr zur Verfügung.
www.darin.ch - blog.darin.ch - rad.darin.ch
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Das kannst Du mit Smarty so machen:

Code: Select all

{if $category == 2}
Kategorie 2!
{else}
Nicht Kategorie 2
{/if}
Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
radarin
Regular
Posts: 150
Joined: Sat Nov 25, 2006 5:33 pm
Location: St.Gallen/Schweiz
Contact:

Post by radarin »

danke für die antwort, aber das funktioniert nur für den ersten eintrag. gebe ich zur kontrolle {$category} aus, habe ich im ersten eintrag eine '6', in allen folgenden bekomme ich 'Array', und so funzt das IF natürlich nicht mehr.
ich habe versucht die kategorie aus der url zu übernehmen. {$_GET['QUERY_STRING']} führt zum fehler 'syntax error: unrecognized tag: $_GET['QUERY_STRING'] (Smarty_Compiler.class.php, line 436) '

der versuch es mit dem namen der kategorie umzuseten funktioniert im ersten eintrag nicht, da die variable '{$category.category_name}' am anfang gesetzt noch leer ist, am ende dann aber den korrekten inhalt hat. wenn ein eintrag der kategorie 'tagebuch' zugeordnet ist, dann müsste das doch überall bei der ausgabe innerhalb des '{foreach from=$dategroup.entries item="entry"}' vorhanden sein. irgendwie blick ich da nicht mehr durch...

gruss rene
www.darin.ch - blog.darin.ch - rad.darin.ch
radarin
Regular
Posts: 150
Joined: Sat Nov 25, 2006 5:33 pm
Location: St.Gallen/Schweiz
Contact:

Post by radarin »

<!-- ENTRIES START -->
{serendipity_hookPlugin hook="entries_header" addData="$entry_id"}

{foreach from=$entries item="dategroup"}<!--Eintrag-->
{foreach from=$dategroup.entries item="entry"}

<div class="post">
<!--Titel: -->
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td rowspan="2" valign="bottom"><!--ICON-->{if $category == 6}<img src = "templates/darin/images/icon/kalender.jpg" border = "0">{else}<img src = "templates/darin/images/icon/pin.gif" border = "0">{/if}</td>
<td><h2 id="post-{$entry.id}"><!--TITEL, tlw. mit Datum-->{if $category == 6 OR $category == 10 OR $category == 11}{$entry.timestamp|@formatTime:DATE_FORMAT_ENTRY}: {/if}<a href="{$entry.link}">{$entry.title}</a></h2></td>
</tr>
<tr>
<td>{if !$is_single_entry}<small><!--Zeile unter Titel --> Kat: {$category}, {$category.category_name|@escape} (ist im 1. DS hier leer), {$entry.timestamp|@formatTime:DATE_FORMAT_ENTRY}</small>{/if}</td>
</tr>
</table>



{if $entry.categories}
<span class="categoryIcon">
{foreach from=$entry.categories item="category"}
{if $category.category_icon}
<a href="{$category.category_link}"><img class="categoryIcon" title="{$category.category_name|@escape}{$category.category_description|@emptyPrefix}" alt="{$category.category_name|@escape}" src="{$category.category_icon}" /></a>
{/if}
{/foreach}
</span>
{/if}

<div class="entrytext">
<p>
{$entry.body}
{if $is_single_entry}
<a id="extended"></a>{$entry.extended}
{/if}
</p>

{if $entry.has_extended and not $is_single_entry and not $entry.is_extended}
<br /><a href="{$entry.link}#extended">{$CONST.VIEW_EXTENDED_ENTRY|@sprintf:$entry.title}</a><br /><br />
{/if}

<p class="postmetadata{if $is_single_entry} graybox{/if}">
<small><!--Fusszeile:-->
{if $is_single_entry}
<!--Einzelanzeige-->
{$CONST.ENTRY_POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a> {$CONST.ON} {$entry.timestamp|@formatTime:DATE_FORMAT_ENTRY} {$CONST.AT} {$entry.timestamp|@formatTime:"%H:%M"}.
{if $entry.categories}
{$CONST.FILED_UNDER} {foreach from=$entry.categories item="category" name="categories"}<a href="{$category.category_link}">{$category.category_name|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}.
{/if}
{if $entry.allow_comments}
{$CONST.LEAVE_RESPONSE|sprintf:'<a href="#serendipity_CommentForm">':'</a>':"<a href=\"$entry[link]\">":'</a>'}
{if $entry.moderate_comments}
{$CONST.SUBJECT_TO_MODERATION}
{/if}
{else}
{$CONST.COMMENTS_CLOSED}
{/if}

{else}
<!--Geschrieben von--><!--{$CONST.POSTED_BY}-->Autor: <!--Liste--><a href="{$entry.link_author}">{$entry.author}</a><!-- Ende Autor -->
{if $entry.categories}
{$CONST.IN} {foreach from=$entry.categories item="category" name="categories"}Kategorie: <a href="{$category.category_link}">{$category.category_name|@escape} (an dieser stelle mit inhalt)</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}
{/if}

Code: Select all

<!-- ENTRIES START -->
    {serendipity_hookPlugin hook="entries_header" addData="$entry_id"}

    {foreach from=$entries item="dategroup"}<!--Eintrag-->
        {foreach from=$dategroup.entries item="entry"}
         
		<div class="post">
            <!--Titel: -->
			<table border="0" cellspacing="0" cellpadding="0">
              <tr> 
                <td rowspan="2" valign="bottom"><!--ICON-->{if $category == 6}<img src = "templates/darin/images/icon/kalender.jpg" border = "0">{else}<img src = "templates/darin/images/icon/pin.gif" border = "0">{/if}</td>
                <td><h2 id="post-{$entry.id}"><!--TITEL, tlw. mit Datum-->{if $category == 6 OR $category == 10 OR $category == 11}{$entry.timestamp|@formatTime:DATE_FORMAT_ENTRY}: {/if}<a href="{$entry.link}">{$entry.title}</a></h2></td>
              </tr>
              <tr> 
                 <td>{if !$is_single_entry}<small><!--Zeile unter Titel --> Kat: {$category}, {$category.category_name|@escape},   {$entry.timestamp|@formatTime:DATE_FORMAT_ENTRY}</small>{/if}</td>
              </tr>
            </table>
			
            

            {if $entry.categories}
            <span class="categoryIcon">
            {foreach from=$entry.categories item="category"}
                {if $category.category_icon}
                    <a href="{$category.category_link}"><img class="categoryIcon" title="{$category.category_name|@escape}{$category.category_description|@emptyPrefix}" alt="{$category.category_name|@escape}" src="{$category.category_icon}" /></a>
                {/if}
            {/foreach}
            </span>
            {/if}

            <div class="entrytext">
                <p>
                {$entry.body}
                {if $is_single_entry}
                <a id="extended"></a>{$entry.extended}
                {/if}
                </p>

                {if $entry.has_extended and not $is_single_entry and not $entry.is_extended}
                <br /><a href="{$entry.link}#extended">{$CONST.VIEW_EXTENDED_ENTRY|@sprintf:$entry.title}</a><br /><br />
                {/if}

            <p class="postmetadata{if $is_single_entry} graybox{/if}">
                <small><!--Fusszeile:-->
                {if $is_single_entry}
                <!--Einzelanzeige-->
				{$CONST.ENTRY_POSTED_BY} <a href="{$entry.link_author}">{$entry.author}</a> {$CONST.ON} {$entry.timestamp|@formatTime:DATE_FORMAT_ENTRY} {$CONST.AT} {$entry.timestamp|@formatTime:"%H:%M"}.
                {if $entry.categories}
                   {$CONST.FILED_UNDER} {foreach from=$entry.categories item="category" name="categories"}<a href="{$category.category_link}">{$category.category_name|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}.
                {/if}
                {if $entry.allow_comments}
                    {$CONST.LEAVE_RESPONSE|sprintf:'<a href="#serendipity_CommentForm">':'</a>':"<a href=\"$entry[link]\">":'</a>'}
                    {if $entry.moderate_comments}
                        {$CONST.SUBJECT_TO_MODERATION}
                    {/if}
                {else}
                    {$CONST.COMMENTS_CLOSED}
                {/if}

                {else}
                <!--Geschrieben von--><!--{$CONST.POSTED_BY}-->Autor: <!--Liste--><a href="{$entry.link_author}">{$entry.author}</a><!-- Ende Autor -->
                {if $entry.categories}
                   {$CONST.IN} {foreach from=$entry.categories item="category" name="categories"}Kategorie: <a href="{$category.category_link}">{$category.category_name|@escape}</a>{if not $smarty.foreach.categories.last}, {/if}{/foreach}
                {/if}
www.darin.ch - blog.darin.ch - rad.darin.ch
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

In einem deiner foreach-loops wird anscheinend $category neu belegt. Suche mal nach "item='category'" und ändere das dann in "item='single_category'. Danach ersetzt du innerhalb dieses foreach's $category durch $single_category.

Dann müsste dein eigenes $category überall wieder klappen.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
radarin
Regular
Posts: 150
Joined: Sat Nov 25, 2006 5:33 pm
Location: St.Gallen/Schweiz
Contact:

Post by radarin »

ist in meinem template nicht zu finden. ich versuch es jetzt mal mit dem modifizieren des 'default' templates...
www.darin.ch - blog.darin.ch - rad.darin.ch
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

In der entries.tpl müsste $category drin sein. Das wird vom default ordner genommen wenn dein ordner keine eigene hat.

Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
radarin
Regular
Posts: 150
Joined: Sat Nov 25, 2006 5:33 pm
Location: St.Gallen/Schweiz
Contact:

Post by radarin »

ich hab das problem noch immer nicht gelöst. die entries.tpl gibt mir die einträge nach 2 foreach aus:

Code: Select all

{foreach from=$entries item="dategroup"}
{foreach from=$dategroup.entries item="entry"}
gleich danach gebe ich den titel {$entry.title} und die kategorie {$category}, {$entry_category.category_name} aus.

beim aufruf der einträge einer kategorie habe ich in {$category} ab dem 1. eintrag die kategoriennummer drinn, {$entry_category.category_name} ist im 1. eintrag leer, ab dem 2. eintrag steht der name der kategorie drinn.

rufe ich alle kategorien auf, ist {$category} in allen einträgen leer. {$entry_category.category_name} ist im 1. eintrag ebenfalls leer, im 2. eintrag steht der name des 1. eintrag drinn, im 3. eintrag der name des 2. eintrages. etc. immer um eines verschoben.

unter dem text des eintrages wird die kategorie so ausgegeben:

Code: Select all

{if $entry.categories}
{foreach from=$entry.categories item="entry_category" name="categories"}
{$entry_category.category_name|@escape}{/foreach}
{/if}
was hat es denn damit auf sich? ein ds hat ja nur 1 kategorie, warum also ein foreach?

als ausgangslage habe ich das defaulttemplate genommen. ich benötige einfach direkt nach dem 2. foreach den namen oder die nummer der katogorie, zuverlässig, egal ob ich eine oder alle kategorien anzeige.

"item='category'" oder "item='single_category'" ist im template nirgens zu finden.
www.darin.ch - blog.darin.ch - rad.darin.ch
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Wie kommst Du auf $entry_category.category_name? Du müsstest $category benutzen. $entry_category wird ja nur in der Schleife gesetzt in der die Kategorien zugehörig zu einem Eintrag ausgegeben werden.

Was genau willst Du jetzt benutzen/prüfen:

A. Die Kategorien die einem Eintrag zugeordnet sind ($entry.categories, abhängig von einem Eintrag)

B. Die AKTUELL GEWÄHLTE Kategorie ($category, total unabhängig von einem Eintrag)

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
radarin
Regular
Posts: 150
Joined: Sat Nov 25, 2006 5:33 pm
Location: St.Gallen/Schweiz
Contact:

Post by radarin »

eigentlich generell die kategorie jedes einzelnen eintrages, egal ob nur eine kategorie aufgerufen wird oder alle.

ich will für die kat. tagebuch eine andere darstellung als für die restlichen. beim tagebuch ist das datum wichtig in der darstellung, sonst eher nebensächlich...

gruss rene
www.darin.ch - blog.darin.ch - rad.darin.ch
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Post by garvinhicking »

Hi!

Wenn Du für eine Kategorie ein anderes Template nutzen willst, beutze das Plugin "Erweiterte Optionen für Kategorien", dann kannst Du pro Kategorie ein eigenes Template setzen.

Wenn Du dann im Kateogorie-Plugin eine Kategorie auswählst, werden alle Artikel dort in deinem gewählten Template dargestellt.

Ansonsten prüfst du in der entries.tpl einfach:

Code: Select all

{if (in_array('5', $entry['categories']))}
...hier das datum etc....
{/if}
Die '5' ersetzt Du mit deiner Kategorie.

Das kannst Du ERST dann prüfen wenn Du die <h3 class='serendipity_date'>... HTML Snippets innerhalb des {foreach from=$dategroup.entries item="entry"} loops packst, und deine abfrage darunter. Ausserhalb des foreach loops ist $entry nämlich nicht gesetzt und du kannst es ergo nicht abfragen.

Viele Grüße,
Garvin
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
radarin
Regular
Posts: 150
Joined: Sat Nov 25, 2006 5:33 pm
Location: St.Gallen/Schweiz
Contact:

Post by radarin »

ich hab NACH (und innerhalb) <h3 class='serendipity_date'> und
{foreach from=$dategroup.entries item="entry"} das if in array gesetzt, bekomme aber diesen fehler:

Fatal error: Smarty error: [in file:/home/darinch/public_html/blog/templates/darin03/entries.tpl line 24]: syntax error: unbalanced parenthesis in if statement (Smarty_Compiler.class.php, line 1256) in /home/darinch/public_html/blog/bundled-libs/Smarty/libs/Smarty.class.php on line 1088
www.darin.ch - blog.darin.ch - rad.darin.ch
Post Reply