Forums | Mahara Community

Developers /
submenu_items()


Osbel Rondón's profile picture
Posts: 23

16 March 2017, 8:56

Hello everyone


I'm doing a mahara plugin that adds an item to the main menu.
I need that page to have a submenu with two elements (personal and professional) and to do so modify the submenu_items () function of artefact \ deduko \ lib.php as follows
:

public static function submenu_items() {
        $tabs = array(
            'subnav' => array(
                'class' => 'deduko'
            ),
            'personal' => array(
                'page'  => 'personal',
                'url'   => 'artefact/deduko/personal.php',
                'title' => get_string('personal', 'artefact.deduko'),
            ),
            'profesional' => array(
                'page'  => 'profesional',
                'url'   => 'artefact/deduko/profesional.php',
                'title' => get_string('profesional', 'artefact.deduko'),
            ),
        );
        if (!get_config('licensemetadata')) {
            unset($tabs['license']);
        }
        if (defined('DEDUKO_SUBPAGE') && isset($tabs[DEDUKO_SUBPAGE])) {
            $tabs[DEDUKO_SUBPAGE]['selected'] = true;
        }
        return $tabs;
    }

 

Then in the pages artefact \ deduko \ personal.php and artefact \ deduko \ professional.php create a forms and I showed them as follows:

$Smarty-> assign ('personalform', $personalform);
$smarty->assign('SUBPAGENAV', PluginArtefactDeduko::submenu_items());
$Smarty-> display ('artefact:deduko:personal.tpl');

Fatal error: Call to a member function assign() on a non-object in htdocs\artefact\deduko\personal.php on line xx

If anyone knows that could be causing this error please help me.

Thanks in advance.

Gregor Anželj's profile picture
Posts: 349

16 March 2017, 9:07

Hopefully you have initialized smarty first, like:

$smarty = smarty();
$smarty->assign('personalform', $personalform);
$smarty->assign('SUBPAGENAV', PluginArtefactDeduko::submenu_items());
$smarty->display('artefact:deduko:personal.tpl');

Further I think $smarty should be lowercase and there should not be any spaces before and after arrows (->),
like $smarty->assign etc.

HTH, Gregor

Osbel Rondón's profile picture
Posts: 23

16 March 2017, 13:40

Thank you very much
The mistake was a simple change of upper and lower case

3 results