Topic-icon System - JFBCSystem Content - JFBCContent Stop my site working

Support Specialist
The top of the file (more included) would look like this:
class plgSystemJFBCSystem extends JPlugin
{
    var $tagsToReplace;
    var $metadataTagsToStrip = array('JFBC', 'JLinked', 'SC');

    static $cssIncluded = false;

    function __construct(& $subject, $config)
    {
        $factoryFile = JPATH_ROOT . '/components/com_jfbconnect/libraries/factory.php';
        if (!JFile::exists($factoryFile))
        {
            JFactory::getApplication()->enqueueMessage("File missing: " . $factoryFile . "<br/>Please re-install JFBConnect or disable the JFBCSystem Plugin", 'error');
            return; // Don't finish loading this plugin to prevent other errors
        }
        require_once($factoryFile);
        // Need to load this as some custom developers expect this file to already be loaded and using the old JFBCFacebookLibrary classname
        // Doing this for backward compatibility in v5.1. Remove in the future
        require_once(JPATH_SITE . '/components/com_jfbconnect/libraries/provider/facebook.php');

        parent::__construct($subject, $config);
    }

    public function onAfterInitialise()
    {
        $app = JFactory::getApplication();
        if (!$app->isAdmin())
        {
            // Need to disable Page caching so that values fetched from Facebook are not saved for the next user!
            // Do this by setting the request type to POST. In the Cache plugin, it's checked for "GET". can't be that.
            $option = JRequest::getCmd("option");
            $view = JRequest::getCmd("view");
            if ($option == 'com_jfbconnect' && $view == 'loginregister')
                $_SERVER['REQUEST_METHOD'] = 'POST';

            // Need to load our plugin group early to be able to hook into to every step after
            JPluginHelper::importPlugin('opengraph');
            JPluginHelper::importPlugin('socialprofiles');

            $providers = JFBCFactory::getAllProviders();
            foreach ($providers as $provider)
                $provider->onAfterInitialise();

            $this->buildListOfTagsToReplace();
        }
    }

    public function onAfterRoute()
    {
The whole onAfterRoute code and anything below there wouldn't be touched. I hope that's a little more clear about what the top of the file, from the class definition (the first line posted above) on down should look like.

As for a hosting issue, no, I really don't know. The JForm error you posted above is likely coming from trying to load:
JPATH_ADMINISTRATOR . '/components/com_jfbconnect/models/forms/config.xml'
JForm is the *standard* Joomla way of rendering fields and forms. We use it. That file should exist on your site, though, again, check. The other files loaded in the configuration area are:
JPATH_SITE . JPATH_SITE . '/components/com_jfbconnect/libraries/provider/facebook/config/config.xml'
As well as all the other provider files (google, twitter, linkedin). If those files don't exist, you may get that issue. From your descriptions above, I'll bet they're there though.. but Joomla simply can't read them.

Again, this isn't an issue we've seen before, and the results your showing are bizarre to say the least and indicative something wrong with Joomla. What, I don't know. There's too many things that could be wrong: file permissions issues, another system plugin overriding standard Joomla operations, modifications to Joomla itself, etc.

Let me know if the code change above is clearer and helps,
Alex
The topic has been locked.
Active Subscriptions:

None
Alex, in the /components/com_jfbconnect/libraries/provider there is a /pinterest folder, and in admin it shows 43 users linked to Pinterest users. Umm, does JFBC even support this? I have a feeling that shouldn't be there. Can you confirm, please?
The topic has been locked.
Active Subscriptions:

None
Just to clear thing:

SiteGround has not installed our Joomla, nor have I used anything like their Joomla Installer. We have installed our Joomla ourselves.

Absolutely no optimization or stuff related to Joomla from SiteGround in our setup.
The topic has been locked.
Active Subscriptions:

None
Sorry Alex, the Pinterest folder is OK. Checked the download package. But there are FIVE user groups in JFBC admin: Facebook, G+, Twitter, LinkedIn and........ a broken icon that links to www.opgroeigids.nl/administrator/index.p...ew=usermap&provider=

providor=NOTHING? Could that be a problem?
The topic has been locked.
Active Subscriptions:

None
Alex,

As per Ludwig's comments:
See - joxi.ru/URGSUxjKTJAoH4BV8F8
The topic has been locked.
Active Subscriptions:

None
Alex,

As per Ludwig's comments:
See - joxi.ru/URGSUxjKTJAoH4BV8F8

and this:
joxi.ru/Af2RU_3JTJA6Y7l7g6U
The topic has been locked.
Active Subscriptions:

None
These are the errors I still get:

Notice: Trying to get property of non-object in /home/opgroeig/opgroeigids.nl/plugins/system/jfbcsystem/jfbcsystem.php on line 201

Notice: Trying to get property of non-object in /home/opgroeig/opgroeigids.nl/plugins/system/jfbcsystem/jfbcsystem.php on line 201

Fatal error: Call to a member function onAfterInitialise() on a non-object in /home/opgroeig/opgroeigids.nl/plugins/system/jfbcsystem/jfbcsystem.php on line 61
The topic has been locked.
Support Specialist
Can you check the /components/com_jfbconnect/libraries/provider folder. In there, there should only be the following files:
facebook.php
google.php
linkedin.php
twitter.php
There will also be folders with those names as well as a pinterest folder (not no pinterest.php file).

If you see any additional files in that folder, that's likely the issue. Delete or remove that file. Let me know if there is something extra in there and if you know where it may have come from if so.

Thanks,
Alex
The topic has been locked.
Active Subscriptions:

None
Alex, thanks so much for the help. The only extra thing in there is php.ini. If I get rid of it then it fixes JFBC back end and the 5th mystery providor is gone. However, enabling the System Plugin gives errors on backend:

Notice: Trying to get property of non-object in /home/opgroeig/opgroeigids.nl/plugins/system/jfbcsystem/jfbcsystem.php on line 201

Notice: Trying to get property of non-object in /home/opgroeig/opgroeigids.nl/plugins/system/jfbcsystem/jfbcsystem.php on line 201

And frontend:

Notice: Trying to get property of non-object in /home/opgroeig/opgroeigids.nl/plugins/system/jfbcsystem/jfbcsystem.php on line 201

Notice: Trying to get property of non-object in /home/opgroeig/opgroeigids.nl/plugins/system/jfbcsystem/jfbcsystem.php on line 201
mysqli.reconnect = On magic_quotes_gpc = Off upload_tmp_dir = "/home/opgroeig/opgroeigids.nl/tmp " zend_extension=/usr/local/php53/lib/php/extensions/ioncube.so zend_extension=/usr/local/php53/lib/php/extensions/ZendOptimizer.so
Fatal error: Class 'JFBConnectToolbarphp.ini' not found in /home/opgroeig/opgroeigids.nl/components/com_jfbconnect/libraries/toolbar.php on line 27

Obviously we can't work with Magic Quotes and I'm not sure what other issues there could be here. Any idea of the best way to approach SiteGround with this?

I even tried a blank php.ini file and it breaks JFBC admin. Wierd that just the mere presence of a php.ini file could cause such damage? This is looking more and more like a hosting issue as you suggested, but I don't get why it's only JFBC getting affected.
The topic has been locked.
Support Specialist
Whew! Alright.. the php.ini is definitely the problem. The cause is that we load all of our provider files dynamically. Basically, we look in that /libraries/provider folder to check which files exists and we load those up as available providers. We do that dynamically so that, with 6.1 and later this summer 6.2, we simply have to create the provider files for VK, Amazon, Instagram, Meetup and others that we'll be supported and don't need to make any other modifications to JFBConnect. Support for those additional providers is automatically enabled when those files are present (and of course, have the correct code).

The issue looks to be multi-faceted:
1) JFBConnect is loading *every* file in that folder and assuming it's to a 'provider'. We're already working on a fix to do much better checking of the files to ensure they are proper files and won't cause this going forward. Those changes will be in JFBConnect v6.1, later this month.
2) php.ini files shouldn't just be littered around the site. Honestly, if it was an index.html file or something else more innocuous, this would be completely JFBConnect's fault. I'm not sure what's throwing these extra php.ini files in directories as there shouldn't be one at all. That file modifies how PHP files execute directly from the directory it's in. However, the only file that should ever be directly executed is the index.php file in the root directory of Joomla.

From the other errors you mention, it sounds like there are erroneous php.ini file sin the following directories that should be removed as well:
/components/com_jfbconnect/libraries/toolbar/
/components/com_jfbconnect/libraries/provider/facebook/widget/
/components/com_jfbconnect/libraries/provider/google/widget/
/components/com_jfbconnect/libraries/provider/linkedin/widget/
/components/com_jfbconnect/libraries/provider/pinterest/widget/
/components/com_jfbconnect/libraries/provider/twitter/widget/

Removing those should fix your issue. Again, we'll be adding better checking for those files as well going forward.

Ultimately, Siteground seems like a red herring overall. They may be adding the php.ini files, which is indeed very strange, but JFBConnect should ultimately be much more tolerant of those files in all of the areas that we dynamically detect things (providers, widgets and toolbar).

Keep me posted. Glad we've made progress and that you should be going soon.

Alex
The topic has been locked.