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

#1 25. Oktober 2016 17:11

pWorker
probiert CMS/ms aus
Registriert: 20. Oktober 2016
Beiträge: 78

[GELÖST] [News] Einträge in einer Variable zusammenführen

Hallo,

ich möchte gerne eine Vorschau des Nachrichtentextes anzeigen. Mein Problem ist, dass zum einen jedesmal zwischen der Überschrift und dem Eintrag ein Absatz erzeugt wird, den ich aber nicht will, und sich zum anderen der Truncatebeschnitt nur per entry festlegen lässt.

Mir fehlt die Fähigkeit aus

{$entry->content} & {$entry->title} eine einzige Variable zu erzeugen.

{$previewtext} = {$entry->content} + {$entry->title}

.

Ebenso brauche ich diese Art der Zusammenführung noch für die Google-Anzeige (hier soll aus 2 (o.m.) Formulareingaben 1 "Adresse" generiert werden).

Ich denke, das müsste ziemlich einfach sein, kann es aber nicht korrekt als UDT formulieren und die Variable assignen.

Kann mir da jemand weiterhelfen?

MfG

Beitrag geändert von pWorker (26. Oktober 2016 09:34)

Offline

#2 25. Oktober 2016 19:38

nockenfell
Moderator
Ort: Gontenschwil, Schweiz
Registriert: 09. November 2010
Beiträge: 2.934
Webseite

Re: [GELÖST] [News] Einträge in einer Variable zusammenführen

Das kannst du so machen

{$previewtext= "`$entry->content``$entry->title`"}

[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog  /   Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox

Offline

#3 25. Oktober 2016 19:43

Klenkes
Server-Pate
Ort: 89428 Syrgenstein
Registriert: 17. Dezember 2010
Beiträge: 1.437

Re: [GELÖST] [News] Einträge in einer Variable zusammenführen

oder so:

{$previewtext = "$entry->content|cat:$entry->title"}

Und dann $previewtext weiterverarbeiten.

Offline

#4 25. Oktober 2016 21:30

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] [News] Einträge in einer Variable zusammenführen

oder so wink:

{capture assign='previewtext'}{$entry->content} {$entry->title}{/capture}

http://www.smarty.net/docs/en/language. … apture.tpl

Und dann weiter mit {$previewtext}

Wobei dies

pWorker schrieb:

Mein Problem ist, dass zum einen, jedesmal zwischen der Überschrift und dem Eintrag ein Absatz erzeugt wird, den ich aber nicht will

eigentlich kein Problem sein sollte. Schau dir bitte die jeweiligen Templates an und du wirst wissen, warum da ein Absatz entsteht wink.

Zudem, aufgepasst - für den Einsatz der Variable musst du noch etwas beachten. Unter Umständen ist diese nicht überall verfügbar, sondern nur in einem bestimmten Scope (Bereich).

Wenn du also die Variable außerhalb des News-Moduls verwenden willst, solltest du die Variable systemweit verfügbar machen. Sieht dann so aus

{$previewtext= "`$entry->content``$entry->title`" scope=global}
{$previewtext = "$entry->content|cat:$entry->title" scope=global}

Ist in etwa die Entsprechung zu PHP's

Hab jetzt allerdings nicht getestet, ob diese Option auch mit capture funktioniert...

Wie du siehst, braucht es dafür keinen separaten UDT ... alles Smarty pur wink.

Beitrag geändert von Andynium (29. Oktober 2016 16:50)

Offline

#5 26. Oktober 2016 09:25

pWorker
probiert CMS/ms aus
Registriert: 20. Oktober 2016
Beiträge: 78

Re: [GELÖST] [News] Einträge in einer Variable zusammenführen

Hey,

vielen Dank für den schnellen Support! Wenn ich das richtig verstanden habe, kann ich auf das global scope verzichten, da ich den {$previewtext} ja nur innerhalb des News Moduls/ in Kombination mit dem NM nutze.

@cyberman:Ja, ich weiß, dass das unterschiedliche Elemente <h1> und <p> sind, aber ich wollte daraus einen einzigen Paragraphen machen (also alles innerhalb von <p>), damit man das als reinen Fließtext ohne Absatz verwenden kann (und vorher noch einen Link auf den {$entry->title} setzen).

MfG

Offline

#6 26. Oktober 2016 12:48

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] [News] Einträge in einer Variable zusammenführen

Wenn ich dich richtig verstanden habe, sollte auch eine Lösung in der Art funktionieren wink

{$truncvar = 200 - strlen($entry->title)}
<p><a href="{$entry->moreurl}" title="{$entry->title}">{$entry->title} {$entry->content|truncate:$truncvar}</a></p>

Offline

#7 29. Oktober 2016 09:15

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

Re: [GELÖST] [News] Einträge in einer Variable zusammenführen

Anscheinend wollte er den Link nur beim title, also cybermans Code einfach so abgeändert:

{$truncvar = 200 - strlen($entry->title)}
<p><a href="{$entry->moreurl}" title="{$entry->title}">{$entry->title}</a> {$entry->content|truncate:$truncvar}</p>

Nur der Vollständigkeit halber, falls mal ein Newbie über das Thema stolpert:
@cyberman - beim hinteren capture hast du das "/" vergessen.

Beitrag geändert von owr_web (29. Oktober 2016 09:17)

Offline

#8 29. Oktober 2016 16:53

Andynium
Moderator
Ort: Dohna / SN / Deutschland
Registriert: 13. September 2010
Beiträge: 7.018
Webseite

Re: [GELÖST] [News] Einträge in einer Variable zusammenführen

owr_web schrieb:

@cyberman - beim hinteren capture hast du das "/" vergessen.

Danke für den Hinweis - ist korrigiert!

Offline

#9 04. November 2016 14:35

pWorker
probiert CMS/ms aus
Registriert: 20. Oktober 2016
Beiträge: 78

Re: [GELÖST] [News] Einträge in einer Variable zusammenführen

Hey,

Auf cybermans Grundlage also die korrekte Lösung:

{capture assign='previewtext'}<a href="{$node.url}">{$entry->title|strip_tags}</a>{$entry->content|strip_tags} {/capture}

...


<p>{truncate_better text=$previewtext truncate='120' add=' . . . '}</p>

MfG


(Beim normalen truncate wird der Link abgeschnitten falls der Titel zu lang ist, daher mit Plugin truncate_better)

Beitrag geändert von pWorker (04. November 2016 14:58)

Offline