• Payment Plugins Poll

    We need your feedback on the need for updated payment plugins. Please go here and give us your feedback.

  • Joomla 5.1

    For running J!5.1 you must install Fabrik 4.1
    See also Announcements

  • Subscription and download (Fabrik 4.1 for J!4.2+ and J!5.1) are working now

    See Announcement
    Please post subscription questions and issues here

    We have resolved the issue with the J! updater and this will be fixed in the next release.

How to get groupid?

mirceat

Member
Hello,

I'm trying to move my website from 3.1 to 4.2 and I have several errors in page, the code has been changed drastically and many old syntaxes need to be rewritten. For example, I'm getting this error

Call to a member function getId() on null
the id of the group was retrieved in 3.1 using this syntax, doesn't seems to work anymore:

Code:
if (JFactory::getApplication()->input->get('task', '') == 'form.process') {
   //get group ID
   switch ($groupModel->getId()) {
    case 786:
...

Is there any page that can show me all the modifications made in v4 versus v3 for Fabrik? I found this page but there are only few examples: https://github.com/trobfab/fabrik/wiki/Upgrading-from-fabrik3.10-to-fabrik4#code-examples and links in the page aren't working anymore.

Thank you
 
Where are you running this code?

Beside of the changed J! syntax (e.g. JFactory is deprecated, see the example in the link; but this is J!, not Fabrik) there was also a change in running Fabrik custom php code, so you may not longer have direct access to $groupModel.
 
In Forms, I have set a php plugin to run "While groups are rendered on the form (onCanEditGroup). I want to unset some repeated groups if there is no value selected in those groups.
 
Can you change in plugins\fabrik_form\php\php.php lines 586, 608 and 700
from
$php_result = Php::Eval(['code' => $code, 'vars' => ['formModel' => $formModel, 'data' => $data]]);
to
$php_result = Php::Eval(['code' => $code, 'vars' => ['groupModel'=>$groupModel,'formModel' => $formModel, 'data' => $data]]);
 
Back
Top