# list.tpl cannot be found with standard scaffold (described in SW5 Docs)

**URL:** <https://forum.shopware.com/t/list-tpl-cannot-be-found-with-standard-scaffold-described-in-sw5-docs/41790>\
**Category:** Programmierung\
**Created:** [28. November 2016 um 16:44 UTC](https://forum.shopware.com/t/list-tpl-cannot-be-found-with-standard-scaffold-described-in-sw5-docs/41790 "2016-11-28T16:44:22Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![JakobF](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@JakobF](https://forum.shopware.com/u/JakobF)\
**Post date:** [28. November 2016 um 16:44 UTC](https://forum.shopware.com/t/list-tpl-cannot-be-found-with-standard-scaffold-described-in-sw5-docs/41790/1 "2016-11-28T16:44:22Z")

</div>

Hi,

The list.tpl cannot be found. I thought that there would be a default template for that, which uses the ExtJs model infomation to render the columns…

I’m using this “tutorial”

[https://developers.shopware.com/developers-guide/backend-components/basics/](https://developers.shopware.com/developers-guide/backend-components/basics/)

I come across an error, before starting the section “The last 25% to complete our application”.

I’m using Shopware 5.2.9, maybe I forgot something or the tutorial needs an update.

Maybe someone can help

Regards

Jakob

&nbsp;

Here the full error:

Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. Unable to load template snippet ‘backend/pos/list.tpl’ in engine/Library/Smarty/sysplugins/smarty\_internal\_templatebase.php on line 127 Stack trace:  
#0 engine/Library/Enlight/View/Default.php(274): Smarty\_Internal\_TemplateBase-\>fetch()  
#1 engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(216): Enlight\_View\_Default-\>render(Object(Enlight\_Template\_Default))  
#2 engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(242): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>renderTemplate(Object(Enlight\_Template\_Default))  
#3 engine/Library/Enlight/Controller/Plugins/ViewRenderer/Bootstrap.php(136): Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>render()  
#4 [internal function]: Enlight\_Controller\_Plugins\_ViewRenderer\_Bootstrap-\>onPostDispatch(Object(Enlight\_Controller\_ActionEventArgs))  
#5 engine/Library/Enlight/Event/Handler/Default.php(91): call\_user\_func(Array, Object(Enlight\_Controller\_ActionEventArgs))  
#6 engine/Library/Enlight/Event/EventManager.php(214): Enlight\_Event\_Handler\_Default-\>execute(Object(Enlight\_Controller\_ActionEventArgs))  
#7 engine/Library/Enlight/Controller/Action.php(202): Enlight\_Event\_EventManager-\>notify(‘Enlight\_Control…’, Object(Enlight\_Controller\_ActionEventArgs))  
#8 engine/Library/Enlight/Controller/Dispatcher/Default.php(523): Enlight\_Controller\_Action-\>dispatch(‘listAction’)  
#9 engine/Library/Enlight/Controller/Front.php(223): Enlight\_Controller\_Dispatcher\_Default-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp))  
#10 engine/Shopware/Kernel.php(177): Enlight\_Controller\_Front-\>dispatch()  
#11 vendor/symfony/http-kernel/HttpCache/HttpCache.php(487): Shopware\Kernel-\>handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)  
#12 engine/Shopware/Components/HttpCache/AppCache.php(255): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)  
#13 vendor/symfony/http-kernel/HttpCache/HttpCache.php(258): Shopware\Components\HttpCache\AppCache-\>forward(Object(Symfony\Component\HttpFoundation\Request), true)  
#14 engine/Shopware/Components/HttpCache/AppCache.php(103): Symfony\Component\HttpKernel\HttpCache\HttpCache-\>pass(Object(Symfony\Component\HttpFoundation\Request), true)  
#15 shopware.php(113): Shopware\Components\HttpCache\AppCache-\>handle(Object(Symfony\Component\HttpFoundation\Request))  
#16 {main}

---

<div class="post-metadata">

**Author:** ![Moritz\_Naczenski](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/moritz_naczenski/32/7792_2.png) [@Moritz\_Naczenski](https://forum.shopware.com/u/Moritz_Naczenski)\
**Post date:** [28. November 2016 um 16:53 UTC](https://forum.shopware.com/t/list-tpl-cannot-be-found-with-standard-scaffold-described-in-sw5-docs/41790/2 "2016-11-28T16:53:41Z")

</div>

Did you unzip the installation package directly on the server? It seems that some files went missing during the upload.

---

<div class="post-metadata">

**Author:** ![JakobF](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@JakobF](https://forum.shopware.com/u/JakobF)\
**Post date:** [28. November 2016 um 17:13 UTC](https://forum.shopware.com/t/list-tpl-cannot-be-found-with-standard-scaffold-described-in-sw5-docs/41790/3 "2016-11-28T17:13:35Z")

</div>

This far I used my own model etc. I didn’t want to rebuild tutorial. I will check the zip.&nbsp;

---

<div class="post-metadata">

**Author:** ![JakobF](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@JakobF](https://forum.shopware.com/u/JakobF)\
**Post date:** [28. November 2016 um 22:03 UTC](https://forum.shopware.com/t/list-tpl-cannot-be-found-with-standard-scaffold-described-in-sw5-docs/41790/4 "2016-11-28T22:03:14Z")

</div>

I installed via git. I don’t think something went missing.

The tutorial AND the mentioned zip (SwagProductBasics.zip)&nbsp;from the tutorial do not include any tpl files.

Nonetheless the backend seems to look for a

```
backend/pos/list.tpl

```

where pos is the controller and model name I used in in ExtJs. Shouldn’t a standard list grid be rendered out of the box by definition of the model? Thats how I understand the tutorial. Why is it looking for a backend/customcontrollername/list.tpl ?

//EDIT: maybe important to mention I used the new Plugin structure under [sw]/custom/plugins and the PSR4 loaded controller with the naming convention like this

```
get('kernel')->getPlugins()['PluginName'];
        $this->get('template')->addTemplateDir($plugin->getPath() . '/Resources/views/');
    }
}

```

and [pluginDir]/Resources/views/ holds all the ExtJs files from the tutorial (see screenshot)

![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/b/b1a23a3789d1a3d9871c26a2d6b0e5fc25ec56d4.png)

---

<div class="post-metadata">

**Author:** ![JakobF](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@JakobF](https://forum.shopware.com/u/JakobF)\
**Post date:** [29. November 2016 um 09:27 UTC](https://forum.shopware.com/t/list-tpl-cannot-be-found-with-standard-scaffold-described-in-sw5-docs/41790/5 "2016-11-29T09:27:26Z")

</div>

Also I couldn’t find any example of a file named list.tpl in the whole SW folder. This is weird.

---

<div class="post-metadata">

**Author:** ![JakobF](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@JakobF](https://forum.shopware.com/u/JakobF)\
**Post date:** [29. November 2016 um 16:16 UTC](https://forum.shopware.com/t/list-tpl-cannot-be-found-with-standard-scaffold-described-in-sw5-docs/41790/6 "2016-11-29T16:16:55Z")

</div>

Anyone? I’m just trying to accomplish basic behavior.

---

<div class="post-metadata">

**Author:** ![JakobF](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@JakobF](https://forum.shopware.com/u/JakobF)\
**Post date:** [5. Dezember 2016 um 13:48 UTC](https://forum.shopware.com/t/list-tpl-cannot-be-found-with-standard-scaffold-described-in-sw5-docs/41790/7 "2016-12-05T13:48:18Z")

</div>

The backend controller should just render a json response. Therefore I don’t see why a tpl file is needed.

---

<div class="post-metadata">

**Author:** ![JakobF](https://avatars.discourse-cdn.com/v4/letter/j/9dc877/32.png) [@JakobF](https://forum.shopware.com/u/JakobF)\
**Post date:** [5. Dezember 2016 um 14:38 UTC](https://forum.shopware.com/t/list-tpl-cannot-be-found-with-standard-scaffold-described-in-sw5-docs/41790/8 "2016-12-05T14:38:40Z")

</div>

Alright, maybe someone faces the same problem. So here the solution.

I forgot to call the

```
parent::preDispatch();

```

in which the following code is found

```
        if (!in_array($this->Request()->getActionName(), array('index', 'load', 'skeleton', 'extends'))) {
            $this->Front()->Plugins()->Json()->setRenderer();
        }

```

This tells the controller to use the JSON renderer if a non-init action (like **list** )&nbsp;is called.

Thanks for helping anyway…
