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
  • e-Mail
  • 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


Stichprobe n=36680 von Gosign gecrawlte TYPO3-Seiten mit den Top-Level-Domains <.de/.ch/.at>