craftcms / feed-me

Craft CMS plugin for importing entry data from XML, RSS or ATOM feeds—routine task or on-demand.
Other
288 stars 139 forks source link

`Invalid argument supplied for foreach()` after install on upgraded Craft 3 #417

Closed shoored closed 5 years ago

shoored commented 5 years ago

Description

When I install FeedMe on a Craft2 => Craft3 upgrade site, I immediately got the following error when visiting FeedMe in the CP.

Invalid argument supplied for foreach() in /home/vagrant/sites/xxxxx/vendor/verbb/feed-me/src/web/twig/variables/FeedMeVariable.php

The Craft 2 site had FeedMe installed also.

Steps to reproduce

  1. Install FeedMe on a (upgraded) Craft 3 site
  2. Click on FeedMe in the menu

Additional info

Possible fix

I was able to get it to work by changing the following code in vendor/verbb/feed-me/src/web/twig/variables/FeedMeVariable.php on line 53. (not a PHP developer myself)

          foreach ($enabledTabs as $enabledTab) {
              $selectedTabs[$enabledTab] = $tabs[$enabledTab];
          }

to

        if (is_array($enabledTabs)) {
          foreach ($enabledTabs as $enabledTab) {
              $selectedTabs[$enabledTab] = $tabs[$enabledTab];
          }
        }

Then my old FeedMe 2 feeds appeared. It is probably better to remove those before doing the upgrade?

engram-design commented 5 years ago

Should be fixed in 3.0.0-beta.27