Simples Modul mit Fehlermeldung

  • Hallo,


    ich betreue eine Projekt-Hompage und möchte ein Modul für die Registrierung von Projektpartnern für Meetings einschl. gewünschter Hotelreservierungen vorhalten.


    Ein erstes simples Modul, das nur etwas Text ausgeben soll, macht jedoch schon Probleme ;) :
    Fatal error: Call to a member function get() on a non-object in /var/www/modules/mod_testeventreg/mod_testeventreg.php on line 9


    Den Code hab ich angehangen. Wo liegt bloss das Problem?


    Vielen Dank, Torsten



    Steuerungsdatei: mod_testeventreg.php
    <?php
    defined('_JEXEC') or die( 'Restricted access' );
    require_once dirname(__FILE__) . '/helper.php';
    $params = 'Thats my first output module for Joomla.';
    $execVar = mod_testEventRegHelper::returnOutput( $params );
    require JModuleHelper::getLayoutPath('mod_esteventreg', $params->get('layout', 'default'));
    ?>


    Helperdatei: helper.php
    <?php
    defined('_JEXEC') or die('Restricted access');
    class mod_testEventRegHelper
    {
    public static function returnOutput( $params )
    {
    return $params;
    }
    }
    ?>

    Layoutdatei: default.php
    <?php
    defined('_JEXEC') or die( 'Restricted access' );
    ?>
    <h1>Thats my first output module for Joomla.</h1>
    <h2><?php echo $execVar; ?></h2>

  • Hi,


    das hier ...


    Zitat

    $params = 'Thats my first output module for Joomla.';


    ... ist kein Object also kannst du nicht mit ...


    Code
    $params->get('layout', 'default')


    ... darauf zugreifen :)


    Was möchtest du denn erreichen?


    BTW: Das hier ...

    Code
    defined('_JEXEC') or die('Restricted access');


    ... ist alter Code bei neuem sollte man nur folgendes nutzen:


    Code
    defined('_JEXEC') or die;
  • Ok, danke,



    Das:

    Code
    require JModuleHelper::getLayoutPath('mod_esteventreg', 'default');


    hat keine Abhilfe geschaffen. Ich habs auch ganz ohne den zweiten Parameter, wie in gefundenen Beispielen versucht.


    Erstmal möchte ich erreichen, dass ich kontrolliert Text in verschiedenen Formaten ausgeben kann. Im zweiten Schritt möchte ich ein Formular entwickeln, welches dann im dritten Schritt mittel Daten aus MySQL-Tabellen teilweise vorinitialisiert wird. Danach sollen ergänzende Einträge ob Teilnahme oder nicht, Ankunft, Abreise etc. zurück in die Datenbank fließen etc.

  • Ich habe noch einen Fehler gefunden, der aber noch immer nicht das Problem lößt. Die Fehlermeldung ist nun:


    Fatal error: Call to a member function get() on a non-object in /var/www/libraries/cms/module/helper.php on line 215


    Das ist die zugehörige Zeile im Joomla-Code bzgl. des Fehlers:
    // Check if the current module has a style param to override template module style
    $paramsChromeStyle = $params->get('style');


    Steuerungsdatei:mod_testeventreg.php

    PHP
    <?phpdefined('_JEXEC') or die;require_once dirname(__FILE__) . '/helper.php';$params = 'Thats my first output module for Joomla.';$execVar = mod_testEventRegHelper::returnOutput( $params );require JModuleHelper::getLayoutPath('mod_testeventreg');?>


    helper.php:

    PHP
    <?phpdefined('_JEXEC') or die;class mod_testEventRegHelper{    public static function returnOutput( $params )    {        return $params;    }}?>


    default.php:

    PHP
    <?php
    defined('_JEXEC') or die;
    ?>
    <h1>Thats my first output module for Joomla.</h1>
    <h2><?php echo $execVar; ?></h2>


    Wie krieg ich den Text mit Hilfe des Moduls auf die Webseite?


    Danke, Torsten

    • Hilfreich

    Nimm mal:


    Steuerungsdatei:mod_testeventreg.php

    PHP
    <?phpdefined('_JEXEC') or die;require_once dirname(__FILE__) . '/helper.php';$text = 'Thats my first output module for Joomla.';$execVar = mod_testEventRegHelper::returnOutput($text);require JModuleHelper::getLayoutPath('mod_testeventreg');?>


    helper.php:

    PHP
    <?phpdefined('_JEXEC') or die;class mod_testEventRegHelper{public static function returnOutput($text){return $text;}}?>


    default.php:

    PHP
    <?php
    defined('_JEXEC') or die;
    ?>
    <h1>Thats my first output module for Joomla.</h1>
    <h2><?php echo $execVar; ?></h2>


    ... $params ist eine "reservierte Variable" welche i.d.R. ein Object ist und u.a. die Einstellungen (Parameter) z.B. des Moduls speichert.