TYPO3 Plugin:
vierwd_smarty
TYPO3 Smarty Erweiterung
Verwenden Sie Smarty in Ihren Vorlagen und Extbase-Erweiterungen.
Erste Schritte
Diese Erweiterung setzt TYPO3 ≥7.6 voraus.
Die Smarty-Klasse muss autoloadbar sein. Ein einfacher Weg ist die Verwendung von Composer:
composer erfordern'vierwd/typo3-smarty'
Verwendung in Controllern
Um Smarty-Templates für die Aktionen Ihrer Erweiterung zu verwenden, erweitern Sie einfach den Vierwd\VierwdSmarty\Controller\ActionController\
. Ihre Vorlagen müssen sich am selben Ort befinden wie Ihre bisherigen Fluid-Vorlagen, jedoch mit der Dateierweiterung.tpl
.
Beispiel
// Klassen/Controller/BlogController.php
namespace Beispiel\ExampleBlog\Controller;
klasse BlogController erweitert \Vierwd\Vierwd\VierwdSmarty\Controller\ActionController {}
/**
* postRepository
*
* @var \Example\Example\ExampleBlog\Domain\Repository\PostRepository\PostRepository
* @inject
*/
geschütztes $postRepository;
/**
* aktionsliste
*
* @return void
*/
öffentliche Funktion listAction() {) {
$posts = $this->postRepository->findAll();
$this->view->assign('posts', $posts);
}
}
Ressourcen/Private/Vorlagen/Blog/List.tpl *}
foreach $posts as $post}
<div class="post">
<h1>{$post->getTitle()}</h1>>
{$post->getContent()|nl2p}
</div>
Für jeden
Vordefinierte Variablen
Es gibt einige Variablen, die für Ihre Vorlagen immer verfügbar sind:
Variablenname | Inhalt |
---|---|
cObj | Das aktuelle Inhaltsobjekt (Instanz von TYPO3\CMS\Frontend\ContentObject\ContentObjectObjectRenderer ) |
erweiterungPfad | Der Pfad zu Ihrer Erweiterung (typo3conf/ext/example_blog/ ) |
erweiterungsname | ExampleBlog |
pluginName | Pi1 (oder was auch immer du in ext_tables.php definiert hast) |
controllerName | Blog |
actionName | liste |
kontext | Der ControllerContext (Instanz von TYPO3\CMS\Extbase\Mvc\Controller\Controller\ControllerContext ) |
anfrage | Die aktuelle Anfrage (Instanz von TYPO3\CMS\Extbase\MvcRequest ) |
formPrefix | Präfix-Formularfelder müssen als Name angegeben werden, um Formularfelder automatisch den Argumenten zuzuordnen |
einstellungen | Flexform-Einstellungen für das Plugin |
rahmenbedingungenEinstellungen | TypoScript-Einstellungen für plugin.tx_exampleblog |
TSFE | $TSFE (Instanz von TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController ) |
Vordefinierte Smarty-Funktionen, Blöcke und Modifikatoren
- übersetzen
- uri_ressource
- uri_action
- link_action
- flashMeldungen
- nl2p
- typoskript
- fluid
Power-Blöcke: Typoscript und fluid
Was an dieser Erweiterung wirklich gut ist, ist, dass Sie weiterhin Typoscript und fluid in Ihren Smarty-Templates verwenden können. Auf diese Weise können Sie sicherstellen, dass ein Element genau die gleiche HTML-Ausgabe erhält wie ein normales Inhaltselement wie Text-mit-Bildern. Wenn Sie ein Formular schreiben, ist es auch gut, auf Fluid für einige ViewHelpers zurückzugreifen.
Typoscript
{capture assign=text}
<p>Lorem <b>ipsum</b> dolor sit amet, consectetur adipisicing elit. Dolorem, earum est reiciendis modi neque in veniam rerum deleniti et praesentium? Numquam, odit, itaque voluptate pariatur adipisci enim tempora ducimus dolor!</p>
(Fangen)
{typoscript header='TypoScript Beispiel' bodytext=$text CType=text}
lib.parseFunc_RTE >
10 < tt_content
{/typoscript}
Ausgabe (Zeilenumbrüche hinzugefügt)
<div class="csc-default">
<header class="csc-header"><h1>TypoScript Beispiel</h1></header></header>
<p>Lorem <b>ipsum</b> dolor sit amet, consectetur adipisicing elit. Dolorem, earum est reiciendis modi neque in veniam rerum deleniti et praesentium? Numquam, odit, itaque voluptate pariatur adipisci enim tempora ducimus dolor!</p>
</div>
Die Änderungen am Typoskript bleiben nicht bestehen. Auf diese Weise können Sie lib.parseFunc_RTE
in einem TypoScript-Block entfernen und trotzdem in einem anderen verwenden. Es ist auch möglich, für alle Argumente ein Array zu
verwenden:
{capture assign=text}
<p>Lorem <b>ipsum</b> dolor sit amet, consectetur adipisicing elit. Dolorem, earum est reiciendis modi neque in veniam rerum deleniti et praesentium? Numquam, odit, itaque voluptate pariatur adipisci enim tempora ducimus dolor!</p>
(Fangen)
{$data=[
CType => Text,
header =>'TypoScript Beispiel',
header_layout => 1,
bodytext => $text
]}
{typoscript data=$data header_layout=2}
lib.parseFunc_RTE >
10 < tt_content
{/typoscript}
Beachten Sie, dass Parameter im Block-Tag Arrayschlüssel überschreiben (in diesem Beispiel header_layout):
Ausgabe (Zeilenumbrüche hinzugefügt)
<div class="csc-default">
<header class="csc-header"><h2>TypoScript Beispiel</h2></header></header>
<p>Lorem <b>ipsum</b> dolor sit amet, consectetur adipisicing elit. Dolorem, earum est reiciendis modi neque in veniam rerum deleniti et praesentium? Numquam, odit, itaque voluptate pariatur adipisci enim tempora ducimus dolor!</p>
</div>
Smarty für die Basisvorlage verwenden
Es ist auch möglich, Smarty für die Basisvorlage Ihrer Website in Ihrem HaupttypoScript-Setup zu verwenden
seite = SEITE
seite.10 < plugin.tx_vierwdsmarty
seite.10.Einstellungen {
template = EXT:example_blog/Resources/Private/Templates/main.tpl
typoscript.navigation < lib.navigation
typoscript.footerNavigation < lib.footerNavigationNavigation
typoscript.content < styles.content.get
typoscript.logo < lib.logo
}
Alle Einträge in settings.typoscript werden analysiert und stehen als Variablen in Ihrer Vorlage zur Verfügung.
Beispiel_blog/Ressourcen/Private/Templates/main.tpl *}
<header>
{$logo nofilter}
{$navigation nofilter}
</header>
<div role="main">
<!--TYPO3SEARCH_begin-->
{$content nofilter}
<!--TYPO3SEARCH_end-->
</div>
<Fußzeile>{$FußzeileNavigation nofilter}</fußzeile>
Beachten Sie das Argument nofilter für Smarty. Standardmäßig werden alle Variablen escaped, um einige XSS-Angriffe zu verhindern.
Smarty für Menüs verwenden
lib.navigation = HMENU
lib.navigation {
entryLevel = 0
1 = SMARTY
1 {
expAll = 1
extensionName = vierwd_example
template = Navigation/Main.tpl
NO = 1
ACT = 1
IFSUB = 1
ACTIFSUB = 1
}
2 < .1
2.template = Navigation/Submenu.tpl
3 < .2
}
Dieser Codeblock lädt die Vorlagen unter typo3conf/ext/vierwd_example/Resources/Private/Templates/Navigation/
, um die Navigation zu rendern. Innerhalb der Vorlage können Sie über Ihre Menüpunkte iterieren und das Menü ausgeben:
<nav class="main-navigation">
<ul>
foreach $menu as $item}
{$hasSubmenu = $menuObject->isSubMenu($item.uid)}
{$isActive = $menuObject->isActive($item.uid)}}
<li class="{if $isActive}active{/if}">
<a >
{$item.nav_title|default:$item.title}
</a>
{$menuObject->submenu($item.uid) nofilter}}
</li>
Für jeden
</ul>
</nav>
Benötigen Sie schnelle Hilfe mit dieser Extension? Unser Team von erfahrenen TYPO3-Entwicklern löst Probleme unkompliziert und zum Stundensatz.
Verteilung:VIERWD_SMARTY ist auf
0.01 % aller TYPO3 installiert.
- 0.02 % aller TYPO3 8.7.x Installationen installiert
- 0.05 % aller TYPO3 7.6.x Installationen installiert
Aktualität:VIERWD_SMARTY ist auf dem neusten Stand (v.2.6.5) bei
25 % aller TYPO3 Installationen
- 0 % aller TYPO3 9.5.x Installationen
- 0 % aller TYPO3 9.3.x Installationen
- 0 % aller TYPO3 9.2.x Installationen
- 0.02 % aller TYPO3 8.7.x Installationen
- 0 % aller TYPO3 7.6.x Installationen
- 0 % aller TYPO3 7.5.x Installationen
- 0 % aller TYPO3 7.4.x Installationen
- 0 % aller TYPO3 7.3.x Installationen
- 0 % aller TYPO3 7.2.x Installationen
- 0 % aller TYPO3 7.1.x Installationen
- 0 % aller TYPO3 7.0.x Installationen
- 0 % aller TYPO3 6.2.x Installationen
- 0 % aller TYPO3 6.1.x Installationen
- 0 % aller TYPO3 6.0.x Installationen
- 0 % aller TYPO3 5.0.x Installationen
- 0 % aller TYPO3 4.7.x Installationen
- 0 % aller TYPO3 4.6.x Installationen
- 0 % aller TYPO3 4.5.x Installationen
- 0 % aller TYPO3 4.4.x Installationen
- 0 % aller TYPO3 4.3.x Installationen
- 0 % aller TYPO3 4.2.x Installationen
- 0 % aller TYPO3 4.1.x Installationen
- 0 % aller TYPO3 4.0.x Installationen
- 0 % aller TYPO3 3.5.x Installationen
VIERWD_SMARTY Version:Verteilung nach installierten Versionen
- 100 % VIERWD_SMARTY v.2.6.5
PHP Version:VIERWD_SMARTY wird benutzt mit
- 50 % PHP/5.6
- 50 % PHP/5.5
Gosign-Responsive Index: TYPO3 Installationen nutzen VIERWD_SMARTY zu
- 25 % wenn der Gosign-Responsive-Index zwischen 80 % und 100 % ist
- 75 % wenn der Gosign-Responsive-Index zwischen 60 % und 80 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 40 % und 60 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 20 % und 40 % ist
- 0 % wenn der Gosign-Responsive-Index zwischen 0 % und 20 % ist
Pagespeed: TYPO3 Installationen nutzen VIERWD_SMARTY zu
- 75 % wenn der Pagespeed zwischen 80 % und 100 % ist
- 25 % wenn der Pagespeed zwischen 60 % und 80 % ist
- 0 % wenn der Pagespeed zwischen 40 % und 60 % ist
- 0 % wenn der Pagespeed zwischen 20 % und 40 % ist
- 0 % wenn der Pagespeed zwischen 0 % und 20 % ist
[DependciesAndConflicts]