Jump to content

[Resolved - with a PATCH] Required Fusion Code Change on upgrade to PHP 5.5+


Recommended Posts

Posted

Not sure what's happened, it's a mystery. I upgraded to the latest Cubecart the other week, now it's stopped loading. Any suggestions

http://www.nucleusfilms.com/

 

Quote

The www.nucleusfilms.com page isn’t working

www.nucleusfilms.com is currently unable to handle this request.

 

Posted

It took 1.3 seconds to receive the 500ISE response, so I think CubeCart is doing something. But then, crashing later in the cycle.

Please access your site via Cpanel and look for a PHP error log (not the same as a web server error log).

Posted

I would say the general version of PHP won't be the problem.

Until we can look at PHP's error_log, we can only guess that, perhaps, the specific version of PHP  you are now using was not compiled to include all the same extra functionality as the prior version. Such as: curl(), or mcrypt(). But this is only a guess.

Posted

I'm not sure how to access the log - I think I may have to upload a php.ini file to the root folder.

Enable Error Logs

Quote

[29-Mar-2016 16:11:35 UTC] PHP Parse error:  syntax error, unexpected 'yield' (T_YIELD), expecting identifier (T_STRING) in /homepages/40/d121509422/htdocs/modules/plugins/Fusion/classes/module.class.php on line 42
[29-Mar-2016 16:11:50 UTC] PHP Parse error:  syntax error, unexpected 'yield' (T_YIELD), expecting identifier (T_STRING) in /homepages/40/d121509422/htdocs/modules/plugins/Fusion/classes/module.class.php on line 42
[29-Mar-2016 16:12:35 UTC] PHP Parse error:  syntax error, unexpected 'yield' (T_YIELD), expecting identifier (T_STRING) in /homepages/40/d121509422/htdocs/modules/plugins/Fusion/classes/module.class.php on line 42

 

 

I updated the Fusion plugin recently with the one that's on these forums somewhere. I guess there must be something I need to modify?

Posted

Well, it seems that as of PHP 5.5, a new keyword has been added: yield.

Thus, it is illegal to use it elsewise.

Try this. Change the name of the function everywhere it is found in the Fusion code. :

----------------------------------------
Fusion_2.4\Fusion\classes\fusion.class.php
(420): 			return $module->yield();
----------------------------------------
Fusion_2.4\Fusion\classes\module.class.php
(42): 	public function yield();
----------------------------------------
Fusion_2.4\Fusion\modules\color\color.class.php
(55): 	public function yield()
----------------------------------------
Fusion_2.4\Fusion\modules\content_slider\content_slider.class.php
(35): 	public function yield()
----------------------------------------
Fusion_2.4\Fusion\modules\export_settings\export_settings.class.php
(32): 	public function yield() // Not used
----------------------------------------
Fusion_2.4\Fusion\modules\image_select\image_select.class.php
(69): 	public function yield()
----------------------------------------
Fusion_2.4\Fusion\modules\image_slider\image_slider.class.php
(66): 	public function yield()
----------------------------------------
Fusion_2.4\Fusion\modules\import_settings\import_settings.class.php
(33): 	public function yield() // Not used
----------------------------------------
Fusion_2.4\Fusion\modules\multiselect\multiselect.class.php
(35): 	public function yield()
----------------------------------------
Fusion_2.4\Fusion\modules\number\number.class.php
(39): 	public function yield()
----------------------------------------
Fusion_2.4\Fusion\modules\page_layout\page_layout.class.php
(41): 	public function yield()
----------------------------------------
Fusion_2.4\Fusion\modules\select\select.class.php
(99): 	public function yield()
----------------------------------------
Fusion_2.4\Fusion\modules\single_switch\single_switch.class.php
(59): 	public function yield()
----------------------------------------
Fusion_2.4\Fusion\modules\textarea\textarea.class.php
(61): 	public function yield()
----------------------------------------
Fusion_2.4\Fusion\modules\textbox\textbox.class.php
(55): 	public function yield()

Maybe change yield to remit in these 15 locations at the stated (line number).

Posted

I would say "PHP 5.5+".

Also, maybe someone should make an issue of it in the Github: recommending that these Fusion-based skins (Vector and BluePrint) be adopted into the MarketPlace, and the Fusion plugin also be maintained there. (It was one year ago that ShopDev closed his shop and stopped supporting those skins - but did not let them escape into a relaxed licensing model. Maybe ShopDev can now be convinced to do so -- if ShopDev can be located.)

  • 3 weeks later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...