Forums | Mahara Community

Developers /

Osbel Rondón's profile picture
Posts: 23

16 March 2017, 8:56 AM

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')) {
        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: 348

16 March 2017, 9:07 AM

Hopefully you have initialized smarty first, like:

$smarty = smarty();
$smarty->assign('personalform', $personalform);
$smarty->assign('SUBPAGENAV', PluginArtefactDeduko::submenu_items());

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, 1:40 PM

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

3 results