Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#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 :
{capture assign='previewtext'}{$entry->content} {$entry->title}{/capture}
http://www.smarty.net/docs/en/language. … apture.tpl
Und dann weiter mit {$previewtext}
Wobei dies
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 .
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
global $previewtext;
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 .
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
{$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
@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
Seiten: 1