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

#1 02. Februar 2011 17:47

amh
Gast

[GELÖST] [GELÖST] [gelöst] Mehrere Content-Blöcke, Ausgabe nur wenn Inhalt vorhanden

Servus,

das Thema kommt ja recht häufig und ich habe von früher noch Code, den ich immer hergenommen haben. Jetzt mit 1.9.2 geht das nicht mehr :-(
Fehler: (Beim Verarbeiten der Inhaltsblöcke ist ein Fehler aufgetreten (vielleicht 2 Blöcke mit dem gleichen Namen) )

[== smarty ==]
<body>
<div id="wrapper">
    <div id="header" class="row">
        …
    </div>
    
    {content label="Inhalt 1 (Pflicht)"}
    
    {capture assign="Inhalt_2"}{content block='Inhalt_2'}{/capture}

    {if isset($Inhalt_2) && $Inhalt_2 != '' }
    <div class="row">
        <div class="column grid_6">
            <h2>{content block='Ueberschrit_2' wysiwyg='false' oneline='true'}</h2>
            <p class="marginalNote">{content block='Marginalie_2' wysiwyg='false' oneline='true'}</p>
        </div>

        <div class="column grid_6">
            {content block='Inhalt_2'}
        </div>
    </div>
    {/if}
    
</div>

</body>

Habt Ihr eine Erklärung?


Dank und Grüße sendet
Andreas

Beitrag geändert von amh (02. Februar 2011 19:00)

#2 02. Februar 2011 17:54

piratos
Gast

Re: [GELÖST] [GELÖST] [gelöst] Mehrere Content-Blöcke, Ausgabe nur wenn Inhalt vorhanden

Was mir zuerst auffällt

{content block='Inhalt_2'}

da genügt

{$Inhalt_2}

da durch den capture Vorgang bereits an Smarty zugewiesen.

Und der Capture Vorgang ist überflüssig da man dem content Aufruf auch ein assign veranlassen kann.

#3 02. Februar 2011 18:00

amh
Gast

Re: [GELÖST] [GELÖST] [gelöst] Mehrere Content-Blöcke, Ausgabe nur wenn Inhalt vorhanden

WOW! Jetzt geht es.
Der gepostete Code kommt aus einer Seite von mir mit CMSms-1.8 *grübel*

Herzlichen Dank!

piratos schrieb:

Und der Capture Vorgang ist überflüssig da man dem content Aufruf auch ein assign veranlassen kann.

Öhm? Wo muss denn das hin? Wäre natürlich schön, wenn der Code kompakter wäre, da ich 6 Content-Blöcke brauche.

[== smarty ==]
{if isset($Inhalt_2) && $Inhalt_2 != '' }
    <div class="row">
        <div class="column grid_6">
            <h2>{content block='Ueberschrit_2' wysiwyg='false' oneline='true'}</h2>
            <p class="marginalNote">{content block='Marginalie_2' wysiwyg='false' oneline='true'}</p>
        </div>

        <div class="column grid_6">
            {content assign='Inhalt_2'}
        </div>
    </div>
    {/if}

So geht’s nicht sad


Viele Grüße Andreas

Beitrag geändert von amh (02. Februar 2011 18:01)

#4 02. Februar 2011 18:04

piratos
Gast

Re: [GELÖST] [GELÖST] [gelöst] Mehrere Content-Blöcke, Ausgabe nur wenn Inhalt vorhanden

Na das ist klar an der Stelle käme das auch zu spät müsstest das

{capture assign="Inhalt_2"}{content block='Inhalt_2'}{/capture}

damit ersetzen.

#5 02. Februar 2011 18:07

amh
Gast

Re: [GELÖST] [GELÖST] [gelöst] Mehrere Content-Blöcke, Ausgabe nur wenn Inhalt vorhanden

Leider geht das nicht. Ich habe mal den grid-Code entfernt:

{content assign='Inhalt_2'}
{if isset($Inhalt_2) && $Inhalt_2 != '' }
    {$Inhalt_2}
{/if}

Es kommt jetzt wieder: Beim Verarbeiten der Inhaltsblöcke ist ein Fehler aufgetreten (vielleicht 2 Blöcke mit dem gleichen Namen)

Viele Grüße Andreas

#6 02. Februar 2011 18:13

piratos
Gast

Re: [GELÖST] [GELÖST] [gelöst] Mehrere Content-Blöcke, Ausgabe nur wenn Inhalt vorhanden

Na ja woher soll content denn wissen welchen Block er assignen soll

block='Inhalt_2'

fehlt.

Beitrag geändert von piratos (02. Februar 2011 18:13)

#7 02. Februar 2011 18:13

owr_web
Server-Pate
Registriert: 16. Dezember 2010
Beiträge: 543

Re: [GELÖST] [GELÖST] [gelöst] Mehrere Content-Blöcke, Ausgabe nur wenn Inhalt vorhanden

amh schrieb:

Hiermit sagst du ja, dass der Block "Content" der Variable (=assign) "Inhalt_2" zugewiesen werden soll - oder llieg ich da jetzt falsch?

EDIT - ok piratos war schneller  big_smile

Beitrag geändert von owr_web (02. Februar 2011 18:14)

Offline

#8 02. Februar 2011 18:16

piratos
Gast

Re: [GELÖST] [GELÖST] [gelöst] Mehrere Content-Blöcke, Ausgabe nur wenn Inhalt vorhanden

{if isset($Inhalt_2) && $Inhalt_2 != '' }

Das isset ist gut und richtig für Smarty 3, unter Smarty 2 reicht das hier:

{if $Inhalt_2 }

#9 02. Februar 2011 18:20

amh
Gast

Re: [GELÖST] [GELÖST] [gelöst] Mehrere Content-Blöcke, Ausgabe nur wenn Inhalt vorhanden

Supper Tipps, nur bin ich zu blöd, die Snipsel korrekt zusammen zu kopieren cry

werder:

{content block='Inhalt_2'}
{content assign='Inhalt_2'}

{if isset($Inhalt_2) && $Inhalt_2 != '' }
    {$Inhalt_2}
{/if}

noch

{content block='Inhalt_2' assign='Inhalt_2'}
{if $Inhalt_2 && $Inhalt_2 != '' }
    {$Inhalt_2}
{/if}

funktionieren.

Danke für Geduld und Hilfe! Andreas

Und

#10 02. Februar 2011 18:25

amh
Gast

Re: [GELÖST] [GELÖST] [gelöst] Mehrere Content-Blöcke, Ausgabe nur wenn Inhalt vorhanden

Jetzt geht’s!

[== smarty ==]
{content block='Inhalt_2' assign='Inhalt_2' label="Inhalt 2 (Pflicht)"}
{if $Inhalt_2 && $Inhalt_2 != '' }
    {$Inhalt_2}
{/if}

Yeah! Vielen Dank!
Andreas