Ausgabe von Seitentitel

Hilfe zur Installation
Post Reply
User avatar
amh
Forum Members
Forum Members
Posts: 187
Joined: Sun Apr 17, 2005 2:40 pm

Ausgabe von Seitentitel

Post by amh »

Servus!

Ich habe eine peinlich einfache Frage, aber ich denke wahrscheinlich völlig falsch. Ich möchte gern den Seitentitel ausgeben, aber nur, wenn auch ein Seitentitel bei den Optionen angegeben wurde. Wenn kein Inhalt vorhanden ist, soll ein anderer Text ausgegeben werden.

Mein Ansatz, der aber nicht funktioniert

Code: Select all

<title>{if isset($description) && $description == '' }keine Beschreibung{else}Beschreibung vorhanden{/if}</title>
Es kommt leider immer »Beschreibung vorhanden«  :'(  :'(  :'(

Wenn ich

Code: Select all

<title>{if $description == '' }keine Beschreibung{else}Beschreibung vorhanden{/if}</title>
schreibe, kommt immer »keine Beschreibung«. *grummel*

Herzlichen Dank für Anregungen!

Viele Grüße Andreas


P.S. Die Suche nach »Seitentitel ausgeben« brachte mich nicht wirklich weiter.
__/\_|\/|_|-|__  --  designer not coder
owr_bgld

Re: Ausgabe von Seitentitel

Post by owr_bgld »

Code: Select all

<title>{if !isset($description) or $description == '' }keine Beschreibung{else}Beschreibung vorhanden{/if}</title>
Rufzeichen vor isset und or statt && - dann gibt er "keine Beschreibung" aus wenn sie nicht gesetzt ist oder leer ist, foern ein Inhalt vorhanden ist, sollte er die Beschreibung ausgeben.


EDIT: die variable sollte normalerweise $title sein für den Seitentitel
Last edited by owr_bgld on Thu May 06, 2010 2:50 pm, edited 1 time in total.
User avatar
amh
Forum Members
Forum Members
Posts: 187
Joined: Sun Apr 17, 2005 2:40 pm

Re: Ausgabe von Seitentitel

Post by amh »

Leider nein. Es wir immer nur »keine Beschreibung« ausgegeben. (Selbstverständlich habe ich einmal eine Beschreibung und einem nicht  ;)  )

Gib’s noch einen Tipp?  :(
__/\_|\/|_|-|__  --  designer not coder
owr_bgld

Re: Ausgabe von Seitentitel

Post by owr_bgld »

hmm - dann stellt sich aber grundsätzlich die Frage, wo du das einsetzen willst. Bzw. redest du vom Titel oder von "Beschreibung(Titel-Attribut)"?

Die Beschreibung und die Extra-Felder müssen wenn ich mich richtig erinnere extra geladen werden - aber da gibts im forum bessere experten, die das auf Anhieb wissen. Soviel ich weiß dürfte das eine Zeile Code sein. Da muss ich mich aber ausklinken
User avatar
amh
Forum Members
Forum Members
Posts: 187
Joined: Sun Apr 17, 2005 2:40 pm

Re: Ausgabe von Seitentitel

Post by amh »

Danke für Deine Geduld!

Also: Unter dem Tab »Optionen« bei Seite gibt es ein Feld namens »Beschreibung (Titel-Attribut):«. Und dieses Feld kann ich mit

Code: Select all

{description}
ausgeben.

Da es aber auch mal sein kann, dass es vergessen wird dieses Feld auszufüllen, hätte ich gern eine Schleife im Template á la »Wenn nix drin, dann gibt den normalen {title} aus.

{title} ist aber nur der Seitenname, so wie er auch im Menü erscheint und damit auch SEO-Sicht sinnlos.

Scheinbar ist {description} aber nie leer, sonst würde Smarty bei der Schleife ja etwas sinnvolles tun, oder ich habe einen Knoten im Hirn.


Ich bin dankbar für weitere Anregungen.


Viele Grüße Andreas
__/\_|\/|_|-|__  --  designer not coder
owr_bgld

Re: Ausgabe von Seitentitel

Post by owr_bgld »

ok - ich dachte mir schon, dass du das richtige Feld meinst. Nur ich bin grad draufgekommen, dass ich ums Eck gedacht habe  ;D

description ist ein Tag und keine Variable, also such ich mir das raus - ich meld mich dann nochmal
owr_bgld

Re: Ausgabe von Seitentitel

Post by owr_bgld »

Sodala ich hab mich durchgewühlt. Eine richtige Lösung dafür habe ich leider nicht gefunden. Aber
amh wrote: {title} ist aber nur der Seitenname, so wie er auch im Menü erscheint und damit auch SEO-Sicht sinnlos.
Also Titel und Menütext sind ja nicht das selbe. Der Titel ist sozusagen die Überschrift und muss nicht ident mit dem Menütext sein. Ich könnte dir aber eine Lösung dafür anbieten. Die findest du hier:

http://forum.cmsmadesimple.org/index.ph ... 380.0.html
einfach das "ExtraFeld1" benutzen.

Eine andere Überlegungsmöglichkeit wäre, dass du den Menümanager mit loadprops lädst und dann beim "current aus $node->titleattribute eine Variable formst, die du dann im content übergibst.

Mehr kann ich dir leider nicht helfen.

EDIT: Hab noch die Beschreibung gefunden: http://wiki.cmsmadesimple.org/index.php ... escription

aber iirc muss loadprops="1" im Menü sein. Als Variable ausgeben müsste es so funktionieren:

Code: Select all

{foreach from=$nodelist item=node}
{if $node->current == true}
{assign var="page_description value=$node->titleattribute}
{/if}
{/foreach}
dann müsste die Variable $page_description den Inhalt der Beschreibung haben.
Hier gibts auch ein Thema dazu http://forum.cmsmadesimple.org/index.ph ... 725.0.html
Last edited by owr_bgld on Fri May 07, 2010 10:16 am, edited 1 time in total.
User avatar
amh
Forum Members
Forum Members
Posts: 187
Joined: Sun Apr 17, 2005 2:40 pm

Re: Ausgabe von Seitentitel

Post by amh »

WOW!
Vielen Dank für die enorme Hilfe!

Ich schätze, dass ich mir am Wochenende mal alle Tags nochmals ansehen sollte und etwas durchteste.



Vielen Dank! Andreas
__/\_|\/|_|-|__  --  designer not coder
owr_bgld

Re: Ausgabe von Seitentitel

Post by owr_bgld »

gern geschehen, ach ja - vielleicht ist dieser Beitrag für dich auch interessant:

http://forum.cmsmadesimple.org/index.ph ... 556.0.html
User avatar
amh
Forum Members
Forum Members
Posts: 187
Joined: Sun Apr 17, 2005 2:40 pm

Re: Ausgabe von Seitentitel

Post by amh »

Der letzte Tipp war sehr gut und logisch! Aber dafür ist es gerade zu spät  :'(

Der Code hat leider so gar nicht funktioniert. Bei mir kommt da keine Ausgabe. Liegt vielleicht daran, dass ich das in einem global content block habe. Hatte ich schon mal das Phänomen.

Ich denke ich werde einfach den {description}-Tag ohne Schleife einbauen. Beim nächsten Projekte gibt es denn einen eigenen Block :-)


VIELEN VIELEN DANK!
__/\_|\/|_|-|__  --  designer not coder
owr_bgld

Re: Ausgabe von Seitentitel

Post by owr_bgld »

hm - du verwirrst mich - was hast du in einem GC-Block? kannst du den mal hier reinkopieren?
owr_bgld

Re: Ausgabe von Seitentitel

Post by owr_bgld »

Manchmal sieht man den Wald vor lauter Bäumen nicht  ;D

Es ist ja sooooooooo kompliziert nicht um die Ecke zu denken:

{capture assign="desc"}{description}{/capture}

dann hast du die Variable $desc in welcher sich der Inhalt der Beschreibung befindet. - und mit der kannst du dann die if/else-Schleife bauen.

Code: Select all

{if !isset $desc or $desc == '' }keine Beschreibung{else}$desc{/if}

http://www.smarty.net/manual/de/languag ... on.capture
User avatar
amh
Forum Members
Forum Members
Posts: 187
Joined: Sun Apr 17, 2005 2:40 pm

Re: Ausgabe von Seitentitel

Post by amh »

Servus owr_web,

zunächst herzlichen Dank für Deine großartige Hartnäckigkeit. Das hat echt geholfen!

Feedback:

So funktioniert es bei mir:

Code: Select all

{capture assign="desc"}{description}{/capture}
	<title>{if $desc == '' }keine Beschreibung{else}{description}{/if}</title>
Wenn ich aber Deine Schleife einsetze, dann komme folgende Fehlermeldung:

Code: Select all

Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in /homepages/17/d90558160/htdocs/tmp/templates_c/%%51^519^5198D97B%%globalcontent%3Armt-html-head.php on line 12
Auch hat $desc nur »$desc« als Text ausgegeben. Mit {description} funktioniert das aber prima!

Auf Deine Frage:
owr_web wrote: hm - du verwirrst mich - was hast du in einem GC-Block? kannst du den mal hier reinkopieren?
Ich finde die GCB prima für’s Template bauen, aber folgender Code hat leider nicht in einem GCB funktioniert:

Code: Select all

</__body>
<div id="langSwitch" class="row">
	<div class="column grid_12">De   <a href="{cms_selflink href='welcome'}">En</a></div>
</div>
<div id="wrapper" class="{$page_alias}">
<div id="header" class="row">
	<div class="column grid_3">{cms_selflink class='logo' dir='start' title='Zur Startseite' image='url.gif' alt='Logo' imageonly='1'}</div>
	<div class="column grid_3">{content block='Seiten_Bild' assign="Seiten_Bild"}{if isset($Seiten_Bild) && $Seiten_Bild == '' }<img src="{uploads_url}/fsp-template/images/platzhalter.gif" alt="" width="187" height="215" />{/if}{content block='Seiten_Bild'}</div>
	<div class="column grid_6">{menu template='fsp_menu' collapse='1' start_level=2}</div>
</div>
Aus irgendeinem Grund bekomme ich hier keine Ausgabe, sodass ich das einfach in das Template schreibe und schon geht es. Ich habe so gar keine Ahnung, warum mein Code zu abgefahren für einen GCB ist.

Herzlichen Dank für Deine Hilfe und einen schönen Abend!

Viele Grüße Andreas
__/\_|\/|_|-|__  --  designer not coder
owr_bgld

Re: Ausgabe von Seitentitel

Post by owr_bgld »

ialso mit dem ersten Teil kann dir gleich geholfen werden - beim schnellen reintippen hab ich die () beim isset vergessen, so sollte es funktionieren

Code: Select all

{if !isset($desc) or $desc == '' }keine Beschreibung{else}$desc{/if}
Ich weiß nicht ob der Aufruf des menu-Templates oder des contents im GCB funktioniert, aber du hast meiner Meinung nach mintestens einen eventuell noch einen anderen/weiteren Fehler drinnen.

==> Du hast einmal einfache Anführungszeichen und einmal doppelte im selben {} drinnen beim content block, das funktioniert nicht. Hier solltest du eher überall alles gleich haben (also nicht nur in einem Tag, wo es unbedingt notwendig ist, sondern auf der ganzen Seite bei allen parametern eine Linie durchziehen). Die Variablennamen würd ich ebenfalls immer klein schreiben, denn ich bin nicht sicher, ob das so immer funktioniert (z.B. seiten_bild anstatt Seiten_Bild).

==> nächste Fehler muss nicht sein, siehst du aber sofort nachdem du die Anführungszeichen geändert hast, wobei auf den doppelten Content block würde ich als Fehler tippen.
{content block='Seiten_Bild' assign="Seiten_Bild"}{if isset($Seiten_Bild) && $Seiten_Bild == '' }{/if}{content block='Seiten_Bild'}
Hier ordnest du dem content block eine Variable zu (grün) um dann nach der if-Schleife nochmal content block aufzurufen - Hier reicht es ja einfach die Variable {$Seiten_Bild} anstatt dem content block... aufzurufen. Eventuell hakt es da ein wenig.

Noch ein anderer Tipp, wenn du mit GCB und menu template und content block arbeitest - oder besser gesaygt, den Versuch ist es wert:

*) den content block mit assign (oder capture?) einfach im Template eine Zeile vor dem GCB einfügen, dann im GCB nur mehr mit der Variablen arbeiten.

Code: Select all

// IM Template vor dem GCB
{content block='Seiten_Bild' assign='Seiten_Bild'}
// Falls der Content block ausgegeben wird, anstatt nur als Variable gespeichert zu werden dann folgendes anstatt vorigem:
{capture assign='Seiten_Bild'}{content block='Seiten_Bild'}{/capture}

// im GCB
[color=green]{$Seiten_Bild}[/color]{if isset($Seiten_Bild) && $Seiten_Bild == '' }<img src="{uploads_url}/fsp-template/images/platzhalter.gif" alt="" width="187" height="215" />{/if}[color=red]{$Seiten_Bild}[/color]
*) Das Menu Template einfach noch eine Zeile vor dem GCB mit capture (wie das mit description) einfügen und dann einfach im GCB nur mehr die Variable einbauen:

Code: Select all

// im Template vor dem GCB:
{capture assign="MENUBEZEICHNUG"}{menu template='fsp_menu' collapse='1' start_level=2}{/capture}

// im GCB
{$MENUBEZEICHNUNG}

EDIT: Das dürfte dich eventuell auch interessieren, ist genial  ;D
http://forum.cmsmadesimple.org/index.ph ... 475.0.html
Last edited by owr_bgld on Wed May 19, 2010 8:34 pm, edited 1 time in total.
Post Reply

Return to “Installation und Einstellungen”