1 users online. Create an account or sign in to join them.Users

Search

Hi there

I just upgraded to 2.2.1 from 2.1.2 using the FTP method, as planned. The process wasn't exactly smooth, but it finally happened (update.php says 2.2.1, and so does config.php).

Now, my frontend works fine but whenever I try to access /symphony (the backend), i get Fatal error: Class 'Frontend' not found in /home/eduapps/webapps/symphony/symphony/lib/toolkit/class.frontendpage.php on line 124

I have no idea what to do! I've picked up roughly how to navigate php code, but I can't figure this one out... Help!

Thanks in advance, Sam

It sounds like there is a problem with an extension. What extensions do you have installed?

A fair few... I'll try with just the 2.2 core extensions, and keep mine backed up.

Thanks for the quick response!

Hmm, it's now of course throwing a "cannot find extension" error. Do you know a way of stopping it looking for them short of editing the database?

Thanks again.

Sorry, got distracted.

If you list your extensions here (attaching a picture of your extensions table overview would probably be easiest), along with their version numbers we will probably be able to pinpoint the extension that is most likely trying to use a deprecated method.

http://files.modelblue.co.uk/2G191o22452q3Q3j2x2h

This is the backup of my extensions, some of them were not enabled. Would you suggest reverting to that backup of 2.1.2 so I can uninstall the deprecated extension, then upgrading again?

Would you suggest reverting to that backup of 2.1.2 so I can uninstall the deprecated extension, then upgrading again?

I would. You could narrow the list down by checking the compatibility of each extension to see if it is compatible with 2.2. I would also upgrade each extension prior to upgrading Symphony.

I think there's two scenarios here that can play out:

  • An extension needs to be updated.
  • An extension is not compatible with 2.2, and currently has no update.

It sounds maybe like an extension is including the Frontend class in the backend, which it should not be. What if you search your entire project for class.frontendpage.php... are some extensions including this? Does it happen on all pages under /symphony/? Can you get to, say, the Extensions page /symphony/system/extensions/ or System Preferences /symphony/system/preferences/.

Perhaps your .htaccess got muddled up during updating instead? Loading the backend should not instantiate Frontend at all! Does using the old .htaccess file work?

There's a compatibility table which might help.

From that list I'd remove/disable Shrimp first. To do this quickly just remove Shrimp's row from sym_extensions

As far as I'm aware, I am using the old .htaccess file.

A projectwide search showed the extension 'shrimp' (which ironically I never actually used) is 'requiring' class.frontendpage.php, and of course its compatibility is unsure for 2.1.2, let alone 2.2... Do you reckon this is the problem?

It's past my bedtime, but tomorrow I'll downgrade and uninstall shrimp, and give that a go.

Thanks so much for all your help, it's so great to have such an active community of experts. I'll post back with an update.

Good shout Brendo! Pipped to the post...

I got rid of the shrimp folder in the extensions folder, and deleted the row in the db, but now I'm getting:

Fatal error: Class 'extension_shrimp' not found in /home/eduapps/webapps/symphony/symphony/lib/toolkit/class.extensionmanager.php on line 634

Where else would there be a reference to it? A project-wide search for shrimp or extension_shrimp comes up blank, and I'm no PHPer, but couldn't see anything out of the ordinary in that file...

You'll also need to delete two references in the sym_extensions_delegates table. Do you remember what the extension's ID was in the sym_extensions table?

I don't, but as far as I can see, each row in the delegates table has a corresponding extension in the extensions table, after shrimp has been removed...?

Well, I believe the corresponding extension is denoted by its id. Since you cannot reference the ID in the sym_extensions table because it has been deleted, you can be sure which 2 delegates to delete.

Try to match the delegate and callback.

First one:

    'delegate' => 'FrontendPrePageResolve',
    'callback' => 'hijack_page',

Second one:

    'delegate' => 'AddCustomPreferenceFieldsets',
    'callback' => 'append_preferences'

There is no row with a callback of hijack_page, and only one with the second pair but it has the ID of the root page params extension... And all of the IDs in the delegates table are accounted for in the extension table.

But still getting the error message! Thanks so much for your help so far, I would really appreciate it if you could stick this one through with me!

No worries mate, we leave no man/woman behind!

Just understand that this is not a common occurrence and not Symphony itself.

Please check manifest/config.php and see if there are any preferences related to the Shrimp extension. If there are, delete that specific block.

Look for something along the lines of settings[shrimp][prefix].

I'm sorry it seems like I'm stabbing in the dark here, I'm just dissecting the extension and trying to find where it's leaving traces.

Is the folder definitely removed from /extensions/ ?

Lewis, that was it - thanks!

Phew..

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.2 or above
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.0 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details