# Eigenen Controller im Frontend aufrufen

**URL:** <https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734>\
**Category:** Deutsches Forum\
**Tags:** development\
**Created:** [April 5, 2021, 4:17pm UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734 "2021-04-05T16:17:53Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![s1de](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/s/977dab/32.png) [@s1de](https://forum.oxid-esales.com/u/s1de)\
**Post date:** [April 5, 2021, 4:17pm UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/1 "2021-04-05T16:17:53Z")

</div>

Moin,

ich habe einen Oxid Shop PE 6.2.3 und habe ein Modul erstellt mit der Metadata Version 2.1.

Im Modul habe ich wiefolgt einen Controller eingerichtet der mir meine Werte im Frontend ausgeben soll.

metadata.php

```
'controllers' => [
    'contactpersoncontroller' => \MyComp\MyContactPerson\Controller\ContactPersonController::class,
],

```

ContactPersonController.php

```
<?php

/**
 * Copyright © OXID eSales AG. All rights reserved.
 * See LICENSE file for license details.
 */

namespace MyComp\MyContactPerson\Controller;

class ContactPersonController extends \OxidEsales\Eshop\Application\Controller\FrontendController
{
    protected $_aErrorMsg = array();
    protected $_sThisTemplate = 'page/shop/start.tpl';
    public function init()
    {
        parent::init();
    }
    public function render()
    {
        parent::render();
        $this->_aViewData['cpdemo'] = "Hello World!";
        $oContactPerson =$this->getData();
        if (count($oContactPerson)) {
            $this->_aViewData['oContactPerson'] = $oContactPerson;
        }
        return $this->_sThisTemplate;
    }
    public function getData()
    {
        $oData = oxNew(\MyComp\MyContactPerson\Application\Model\ContactPerson::class);
        $oData->selectString("SELECT * FROM idcontactperson");
        return $oData->getArray();
    }
}

```

Ich hätte jetzt erwartet, dass ich in der start.tpl wiefolgt ein String mit Hello World bekomme…

`[{$gedemo|@var_dump}]`

Es macht jedoch den anschein als ob der Controller garnicht aufgerufen würde.

Kann mir jemand sagen ob und was ich hier vergessen habe? Vielen Dank!

---

<div class="post-metadata">

**Author:** ![vanilla\_thunder](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/vanilla_thunder/32/72_2.png) [@vanilla\_thunder](https://forum.oxid-esales.com/u/vanilla_thunder)\
**Post date:** [April 5, 2021, 5:26pm UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/2 "2021-04-05T17:26:52Z")

</div>

Einerseits heißen bei dir alle Variablen im Template und im Code jeweils unterschiedlich.  
Und andererseits muss man den Controller natürlich manuell aufrufen, von selbst ruft sich der Controller nicht auf.

---

<div class="post-metadata">

**Author:** ![rubbercut](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/rubbercut/32/3520_2.png) [@rubbercut](https://forum.oxid-esales.com/u/rubbercut)\
**Post date:** [April 5, 2021, 5:41pm UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/3 "2021-04-05T17:41:26Z")

</div>

> [@s1de](#):
>
> Controller

Auch wenn Du den anderen Thread als erledigt markiert hast, verstanden hast das System scheinbar noch nicht.

Damit in Deinem Controller gerendert wird, muss dieser aufgerufen werden und nicht Start.

---

<div class="post-metadata">

**Author:** ![s1de](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/s/977dab/32.png) [@s1de](https://forum.oxid-esales.com/u/s1de)\
**Post date:** [April 5, 2021, 7:38pm UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/4 "2021-04-05T19:38:04Z")

</div>

Okay danke… ich habe die Variablen und die Klasse angepasst und

`protected $_sThisTemplate = 'widget/contact/contactperson.tpl';`

erstellt.

Jedoch ist mir unklar, wie ich den Frontendcontroller aufrufe.

---

<div class="post-metadata">

**Author:** ![vanilla\_thunder](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/vanilla_thunder/32/72_2.png) [@vanilla\_thunder](https://forum.oxid-esales.com/u/vanilla_thunder)\
**Post date:** [April 5, 2021, 7:53pm UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/5 "2021-04-05T19:53:33Z")

</div>

/index.php?cl=contactpersoncontroller

---

<div class="post-metadata">

**Author:** ![s1de](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/s/977dab/32.png) [@s1de](https://forum.oxid-esales.com/u/s1de)\
**Post date:** [April 5, 2021, 9:13pm UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/6 "2021-04-05T21:13:54Z")

</div>

Okay danke!

Dann war ich wahrscheinlich auf dem flaschen Dampfer und ich brauche eher ein Widget um einfach eine Liste der Kontaktpersonen in verschiedenen Templates auszugeben.

---

<div class="post-metadata">

**Author:** ![rubbercut](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/rubbercut/32/3520_2.png) [@rubbercut](https://forum.oxid-esales.com/u/rubbercut)\
**Post date:** [April 6, 2021, 12:06am UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/7 "2021-04-06T00:06:21Z")

</div>

Nicht unbedingt. Vielleicht beschreibst einmal genau, was Du wo einbinden möchtest.

---

<div class="post-metadata">

**Author:** ![indianer3c](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/indianer3c/32/4325_2.png) [@indianer3c](https://forum.oxid-esales.com/u/indianer3c)\
**Post date:** [April 6, 2021, 9:28am UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/8 "2021-04-06T09:28:34Z")

</div>

Empfehlung [Kostenloses Tutorial zum Thema „E-Commerce“ – OXID eShop Entwicklerschulung Basis I + II | Udemy](https://www.udemy.com/course/oxid-eshop-entwicklerschulung-basis/)

---

<div class="post-metadata">

**Author:** ![rubbercut](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/rubbercut/32/3520_2.png) [@rubbercut](https://forum.oxid-esales.com/u/rubbercut)\
**Post date:** [April 7, 2021, 12:01am UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/9 "2021-04-07T00:01:28Z")

</div>

Ich hoffe, dass das schon vor dem Stellen der Fragen gelesen wurde 😉

---

<div class="post-metadata">

**Author:** ![s1de](https://forum.oxid-esales.com/letter_avatar_proxy/v4/letter/s/977dab/32.png) [@s1de](https://forum.oxid-esales.com/u/s1de)\
**Post date:** [April 7, 2021, 7:24am UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/10 "2021-04-07T07:24:45Z")

</div>

Ich danke euch für eure Hinweise, ich denke ich habe am Wochenende nun was zu tun ;).

Ich denke, dass das Widget die richtige Entscheidung ist, da ich einfach relativ easy einzige Bedingung ist ob der User eingeloggt ist oder nicht, eine im Backend gepflegte Liste ausspielen möchte. Diese soll aber im Kundenkonto, auf Kategorie Seiten und als VisualCMS Modul verfügbar sein. Das funktioniert aktuell super. Ich kann im Controller des Widgets einfach mitgeben welches Seitentemplate aktuell genutzt wird und eins meiner angelegten Widget Templates mit der foreach die via. Controller das Model anfragt ausspielen.

Das ist genau das was ich wollte, so ist das VisualCMS Snippet auch unglaublich basic in dem ich einfach nur das Widget einbinde.

Allgemein nochmal Vielen Dank für eure Unterstützung!

---

<div class="post-metadata">

**Author:** ![system](https://forum.oxid-esales.com/user_avatar/forum.oxid-esales.com/system/32/4245_2.png) [@system](https://forum.oxid-esales.com/u/system)\
**Post date:** [April 7, 2022, 7:25am UTC](https://forum.oxid-esales.com/t/eigenen-controller-im-frontend-aufrufen/97734/11 "2022-04-07T07:25:31Z")

</div>

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.
