Quantcast
Channel: Programmierung - Shopware Community Forum
Viewing all articles
Browse latest Browse all 2871

Snippets in INI-Datei bei 5.2 Plug-in

$
0
0

Cheerio,

hat es jemand schon hinbekommen, für Plug-ins nach dem neuen 5.2-Schema (in custom/plugins abgelegt), mit INI-Dateien für die Übersetzung zu arbeiten? Ich scheitere momentan kläglich.

Meine Plug-in-Datei sieht momentan so aus:

<?php

namespace SumoLoginScreen;

/**
 * Plug-in main class
 *
 * @author Matthias Wehrlein
 */
class SumoLoginScreen extends \Shopware\Components\Plugin
{
    /**
     * Returns the events we wish to subscribe to (and their callbacks)
     *
     * @return array
     * @author Matthias Wehrlein
     */
    public static function getSubscribedEvents()
    {
        return [
            'Enlight_Controller_Action_PostDispatch_Frontend' => 'onPostDispatchFrontend'
        ];
    }

    /**
     * Checks for a valid user on every request and presents a login screen.
     *
     * @param Enlight_Event_EventArgs $args
     * @return void
     * @author Matthias Wehrlein
     */
    public function onPosDispatchFrontend(\Enlight_Event_EventArgs $args)
    {
        $admin = Shopware()->Modules()->Admin();

        if ($admin->sCheckUser()) {
            return;
        }

        $controller = $args->getSubject();
        $request    = $controller->Request();
        $view       = $controller->View();
        $response   = $controller->Response();

        Shopware()->Snippets()->addConfigDir($this->getPath() . '/Resources/Snippets/');

        $view->addTemplateDir($this->getPath() . '/Resources/Views/');
        $view->extendsTemplate('frontend/plugins/sumo_login_screen/login.tpl');
    }
}

Die INI-Datei mit den Übersetzungen liegt in Resources/Snippets/frontend/plugins/sumo_login_screen/login.ini und sieht folgendermaßen aus:

[en_GB]
Login = "Login"
Test = "TEST en_GB 1.1"

[de_DE]
Login = "Anmelden"
Test = "TEST de_DE 1.2"

login.tpl (abgespeckt):

{block name='frontend_index_page_wrap'}
    <ul>
        <li>
            {s name="Test"}{/s}
        </li>
        <li>
            {s name="Test" namespace="frontend/plugins/sumo_login_screen/login"}{/s}
        </li>
    </ul>
{/block}

Die Snippets werden nach dem Rendern im Textbausteine-Modul registriert, allerdings ohne Wert, und natürlich ist im Frontend auch nichts zu sehen. Das Template wird allerdings korrekt gerendert.

Ich hatte auch schon versucht, den Snippets-Ordner eine Ordnerebene höher zu ziehen, führte aber ebenfalls zu nichts. Ich habe das Gefühl, dass die INI-Datei schlichtweg ignoriert wird und dass das damit zusammenhängt, dass ich mit der 5.2-Struktur fahre. Etwas stöbern im Shopware-Code scheint das auch halb zu bestätigen; stecke allerdings nicht tief genug in der Snippets-Materie, um das zu 100% zu bestätigen.

Ich habe mir alle möglichen Plug-ins angeschaut, die Shopware momentan ausliefert, insbesondere die 5.2-Beispiele, die man auf der entsprechenden Developer-Doku finden kann, aber die zeigen alle nicht den benötigen Beispielcode oder sind fehlerhaft.

Mache ich eventuell etwas grundlegendes falsch?


Viewing all articles
Browse latest Browse all 2871

Trending Articles