Jump to content

Upgrade Support IPB v3 to v4


Recommended Posts

I double checked the DB tables - there are no tables left which refers to nexus.

A global search within the DB came to the same result. 

Update: I found under /hooks/ two PHPs which were connected to Nexus - removed as well, Error message remains 

Link to comment
Share on other sites

Hello @all - to be honest, currently I'm feeling a bit lost with that Nexus stuff.
Even if I followed all the advices and hints and where I removed orphaned Nexus tables and Hook references the system cant bypass that check. 

Is there really no other way that buying the Commerce Module to proceed?

Or could it be that the result of the initial check refers to any Cache-file which maybe have to cleaned/reset manually?

Link to comment
Share on other sites

I'm lost with that f*cking sys-check..... very frustrating, tbh.

I reuploaded all installation files and I get the same stuff shown on the screen.

Does anyone have an idea how to bypass the check which blocks the entire system. 

Link to comment
Share on other sites

+Update,

the datastore is a 'drive me crazy' element.

The UTF convert process stopped at 14%, because it had an issue with converting Tapatalk tables.

As I dont need TT, I decided to remove all tables. Started the coverting processes again. Same problem after 14% was reached, Tapatalk was mentioned again as reason.

I followed Stuarts recommendation and cleaned the datastore - hey and voila, It worked as well

Could contain: File, Page, Text, Webpage

Link to comment
Share on other sites

Yeah, upgrading from 3.x can be as smooth as usual or tricky as hell depending on how many modifications were installed before the upgrade. When I do a legacy upgrade I usually uninstall as many modifications as possible beforehand. (As long as the client doesn't plan to upgrade them for 4.x.)

I've had issues with Tapatalk before, mainly because their code is well...let's just skip what I think of it. 😋

 

That error doesn't really help much though. There no file or line. You should probably have a more complete(?) error logged on the server.

Edited by teraßyte
Link to comment
Share on other sites

I'm walking through the hell currently ;-), thank you teraßyte walking with me .

Yes, in the past we had dozens of custom built hooks. All good suff, teraßyte mods were amongst.

Would it help if I remove the entire cotent of the hooks folder or is this dangerous?

The error logs refers to 

PHP Warning:  Illegal string offset 'forum_id' in /www/htdocs/xxx/community/hooks/ajaxThanksPostData

but I'm nt really sure if this causes the issue because the forum is off.

Link to comment
Share on other sites

Removing the /hooks folder won't change anything since the 4.x code doesn't even load the files inside it. That error is most likely from when you switched to PHP 8, but before uploading the files/running the upgrade.

 

That last screenshot indicates that the upgrade is stuck on a step for the gallery application (version 60000) so I initially thought the error must be coming from the file: \applications\gallery\setup\upg_60000\upgrade.php.

After taking a look there is no such reference to any array_keys() call in there though. Rather there is no such call at all in the whole \applications\gallery\setup folder. The error must be coming from some other file/function since it's also showing up when you try to access the ACP.

 

If you don't have a more complete error to look at, the only solution left would be to manually add debug code and find where exactly the code is throwing the error. While it looks like a bug, it's a bug from a 3.x upgrade so not sure if IPS would be able to help and take a look at it themselves. 🙄

Link to comment
Share on other sites

32 minutes ago, teraßyte said:

After taking a look there is no such reference to any array_keys() call in there though.

The error may be because a variable isn’t declared hence the NULL. Probably there’s a conditional somewhere in that file that creates an array. As the condition returns FALSE, the error happens. That’s a PHP 8 thing. 

I would say the error is in the step 5. It’s enough to add $toRun = array(); before IF.

Just a guess. Not tested.

Link to comment
Share on other sites

 @Adriano Faria That's what I thought initially, but then I looked again at his other screenshot:

Quote

The error must be coming from some other file/function since it's also showing up when you try to access the ACP.

It's worth a try anyway.

 

Actually, scratch that. Taking a look again at the previous screenshot the issue there is with array_map() rather than array_keys(). They keys related one must be something else because the upgrade is not complete yet.

 

The only possible array_map() culprit in that upgrade file is on lines 236~239, it's the code that converts the image metadata from serialized to json format:

			if( $row['image_metadata'] )
			{
				$imageUpdate['image_metadata']	= json_encode( array_map( 'trim', unserialize( $row['image_metadata'] ) ) );
			}

The unserialize() function can indeed return a BOOL (false) value and the code is not accounting for that:

Quote

In case the passed string is not unserializeable, false is returned and E_NOTICE is issued.

 

Try replacing the code above with this instead:

			if( $row['image_metadata'] )
			{
				$tmpMeta = unserialize( $row['image_metadata'] );
				
				if( $tmpMeta === FALSE )
				{
					$tmpMeta = array();
				}
				
				$imageUpdate['image_metadata']	= json_encode( array_map( 'trim', $tmpMeta ) );
			}

 

Should be easy enough for IPS to add a fix in a future version even if they don't exactly support anymore upgrades from 3.x.

Edited by teraßyte
Link to comment
Share on other sites

Millon thanks to you teryßyte - the code you provided allowed me to continue the installation process.

I think I'm half through - the install unfortunately stopped again.

Error message dialog says the following

Could contain: File, Webpage, Page, Text

Link to comment
Share on other sites

Hello tearbyße, it gives me a good feeling that you are still with me and didnt give up already.
I really appreciate this kind of assistance.

This time the case might be more difficult.

After the login into the upgrade process the dialog #a is shown

Could contain: Page, Text, File, Webpage

when clicking on #2 exactly one second later screen #3 is shown.

Could contain: File, Webpage, Text

Link to comment
Share on other sites

Hmm, the code is basically trying to remove any birthday widgets and the table should already be there in theory since the core application upgrade is done. For now you can just open the file \applications\calendar\setup\upg_107305\upgrade.php and comment or remove this code on line 33:

\IPS\Widget::deprecateWidget('todaysBirthdays', 'calendar');

 

As an aside, keep going with the upgrade until the end and once you're done I suggest you immediately restore a backup and redo the upgrade from scratch with all the fixes you've added so far already included.

Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...