Error (Unable To Load Renderer Class Metas) When Opening A Form Via Modal - Question | JoomShaper

Error (Unable To Load Renderer Class Metas) When Opening A Form Via Modal

I'm not sure which category to save this under (seems to be related to SP Pagebuilder and the Helix Ultimate template).

I'm using Fabrik (site builder extension for Joomla) to create some lists/forms for my site. I have a list called "Documents" setup that is supposed to open a modal when I click the "Add" or an "Edit" link in the list and load the "Documents" form inside the modal. If I try Joomlart's JPurity template or even the Helix 3 template, if the list is accessed via site menu and the menu item's type is "Fabrik List", the modal will load the form.

If I try to use the Helix Ultimate template, I get an error with the message "Unable to load renderer class metas". (I got this from opening the URL of the ajax request that failed).

I created a Fabrik list module for my "Documents" list and embeded it into an SP Pagebuilder page. Regardless of the template used, I also get the "Unable to load renderer class metas" error from the ajax request if I try to open the "Documents" form in a modal from the "Documents" list.

I've gone through Fabrik's forums and asked about this. I recieved a reply that suggested it might be the template that I'm using or SP Pagebuilder, so I'm inquiring here to see if you might have any suggestions. I know for sure the error is being generated from the file libraries/src/Document/Factory.php (line 101). Farbrik is using the public function loadRenderer($type) from the Document class (libraries/src/Document/Document.php) and this seems to be what is triggering the error.

From Fabrik's file (libraries/fabrik/fabrik/fabrik/Document/PartialDocument.php), the protected function renderTemplate() calls the public function getBuffer which calls the loadRenderer($type) function (mentioned above)

The URL of the ajax request is: The url of the ajax request is: https://mysite.com/index.php/component/fabrik/form/8/?Itemid=138&parent_id=42&tmpl=component&ajax=1&format=partial

It was suggested that the parameter tmpl=component is required and I'm wondering if either the Helix Ultimate template or SP Pagebuilder would remove it before it is passed to Fabrik's renderTemplate() function?

These are the functions from Fabrik's PartialDocument.php file:

protected function _renderTemplate() { $replace = array(); $with = array();

    foreach ($this->_template_tags as $jdoc => $args)
    {
        $replace[] = $jdoc;
        $with[] = $this->**getBuffer($args['type'], $args['name'], $args['attribs']);**
    }

    return str_replace($replace, $with, $this->_template);
}

}

public function getBuffer($type = null, $name = null, $attribs = array()) { // If no type is specified, return the whole buffer if ($type === null) { return parent::$_buffer; }

    $title = (isset($attribs['title'])) ? $attribs['title'] : null;

    if (isset(parent::$_buffer[$type][$name][$title]))
    {
        return parent::$_buffer[$type][$name][$title];
    }

    $renderer = **$this->loadRenderer($type);**

    if ($this->_caching == true && $type == 'modules')
    {
        $cache = Factory::getCache('com_modules', '');
        $hash = md5(serialize(array($name, $attribs, null, $renderer)));
        $cbuffer = $cache->get('cbuffer_' . $type);

        if (isset($cbuffer[$hash]))
        {
            return Cache::getWorkarounds($cbuffer[$hash], array('mergehead' => 1));
        }
        else
        {
            $options = array();
            $options['nopathway'] = 1;
            $options['nomodules'] = 1;
            $options['modulemode'] = 1;

            $this->setBuffer($renderer->render($name, $attribs, null), $type, $name);
            $data = parent::$_buffer[$type][$name][$title];

            $tmpdata = Cache::setWorkarounds($data, $options);

            $cbuffer[$hash] = $tmpdata;

            $cache->store($cbuffer, 'cbuffer_' . $type);
        }
    }
    else
    {
        $this->setBuffer($renderer->render($name, $attribs, null), $type, $name, $title);
    }

    return parent::$_buffer[$type][$name][$title];
}

    Any thoughts?

    Thank you!
-1
9 Answers
Toufiq
Toufiq
Accepted Answer
Senior Staff 1 year ago #172109

Hi there,

Thank you for reaching out, and I apologize for any inconvenience caused by this oversight. To better address the issue, could you kindly provide Joomla administrator access? This will enable me to thoroughly investigate the matter and provide you with a prompt resolution.

I appreciate your cooperation and will ensure to get back to you as soon as possible.

Best regards,

Toufiqur Rahman (Team Lead, Support)

0
T
[email protected]
Accepted Answer
1 year ago #172189

I'll create an account.

Thank you

0
T
[email protected]
Accepted Answer
1 year ago #172191

I'll have to make a clone of the site.

0
T
[email protected]
Accepted Answer
1 year ago #172220

New site is available.

0
Toufiq
Toufiq
Accepted Answer
Senior Staff 1 year ago #172288

Are you available now?

0
T
[email protected]
Accepted Answer
1 year ago #172352

Sorry, just got this. I'm available for the rest of the day now.

0
Toufiq
Toufiq
Accepted Answer
Senior Staff 1 year ago #172363

Are you comfort to share your screen using anydesk application? I mean want to see live about the issue.

0
T
[email protected]
Accepted Answer
1 year ago #172372

Yes I can use anydesk.

Thank you

0
Toufiq
Toufiq
Accepted Answer
Senior Staff 1 year ago #172431

Are you available now or tell me when you are available.

0