Oh no! Where's the JavaScript?
Your Web browser does not have JavaScript enabled or does not support JavaScript. Please enable JavaScript on your Web browser to properly view this Web site, or upgrade to a Web browser that does support JavaScript.
Sign In
Not a member yet? Click here to register.

Upgrading v7 / v8 Infusions to v9

In infusion.php you will need to add ,
CodeDownload  
$settings = fusion_get_settings();


This might also be required in other places depending on the complexity of your infusion.

In this section ,
CodeDownload  
$inf_adminpanel[] = array(


Add, under rights page 5 as follows. Do not miss the , on the rights line ( Not required on last ).
CodeDownload  
   
"rights" => "DEMO",
"page" => 5,
"language" => LANGUAGE



page 5 means that it will be listed under Infusions, 1-4 is the other tabs.

$inf_newtable[1] etc can all be striped of the number , like :
$inf_newtable[] row1;
$inf_newtable[] row2;
etc
The system will enumrate automatically.

For both v8 and v9 Infusions need to have their infusion.php updated with utf8mb4

TYPE = MyIsam should always be ENGINE = MyISAM,
and the lines should look like this,
CodeDownload  
ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


Since we use UTF-8mb4 tables in 8 & 9.

You need to replace all <form> with openform(); and all </form> with closeform();
Since many old infusions use formaction, this is how you would make it work with openform();

CodeDownload  
$formaction = "".INFUSIONS."yourinfusion/target.php";
echo openform('inputform', 'post', $formaction, array('enctype' => 1,'class' => 'm-t-20'));


If you do not want to use the new form system you can manually insert tokens like,

CodeDownload  
               // Token data
               $options['form_id'] = "12345678";
               $options['max_tokens'] = "1";
               $options['remote_url'] = fusion_get_settings('site_path').'infusions/myinfusion/post.php';
               $token = \Defender\Token::generate_token($options['form_id'], $options['max_tokens'], $options['remote_url']);

               // Begin Form
               echo "<form id='".$options['form_id']."' name='postform' method='POST' action='".$options['remote_url']."'>\n";
               echo "<input type='hidden' name='fusion_token' value='".$token."' />\n";
               echo "<input type='hidden' name='form_id' value='".$options['form_id']."' />\n";
               
               // Form content as usual
               
               echo "</form>\n";



Please note that any MySQL errors will halt the Infuse as a whole, generic upgrade lines that fail or generic table modification attempts on non existing tables will result in a failure.

Remember to Download the 9.03 SDK as well for more examples. https://www.php-fusion.co.uk/infusion...oad_id=601
I have been searching for something like this, this is JUST what I needed. I was going to hire someone to update Infusions for me and now I do not have to if this works. Thank you for sharing this Falk!

Now, if we only had this for Themes! Is there a tutorial like this for updating Themes too?

Quote

In infusion.php you will need to add ,
CodeDownload  
$settings = fusion_get_settings();


This might also be required in other places depending on the complexity of your infusion.
What other files may this need to be placed in?

In this section ,
CodeDownload  
$inf_adminpanel[] = array(


Add, under rights page 5 as follows. Do not miss the , on the rights line.
CodeDownload  
   
"rights" => "DEMO",
"page" => 5


page 5 means that it will be listed under Infusions, 1-4 is the other tabs.

I know this is for Infusions that include Admin Panels but what file does this code go in? What are the files for Infusions with Admin Panels typically called? Also, is DEMO what goes in
CodeDownload  
"rights" => "DEMO",

and what is each of the pages 1-4 if you do not mind explaining a bit more.


$inf_newtable[1] etc can all be striped of the number , like :
$inf_newtable[] row1;
$inf_newtable[] row2;
etc
The system will enumrate automatically.

TYPE = MyIsam should always be ENGINE = MyISAM,
preferably like,
CodeDownload  
ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;


Since we use UTF-8mb4 in 9.

You need to replace all <form> with openform(); and all </form> with closeform();
Since many old infusions use formaction, this is how you would make it work with openform();

CodeDownload  
$formaction = "".INFUSIONS."yourinfusion/target.php";
echo openform('inputform', 'post', $formaction, array('enctype' => 1,'class' => 'm-t-20'));



What file(s) can this code typically be found in?

If you do not want to use the new form system you can manually insert tokens like,

CodeDownload  
               // Token data
               $options['form_id'] = "12345678";
               $options['max_tokens'] = "1";
               $options['remote_url'] = fusion_get_settings('site_path').'infusions/myinfusion/post.php';
               $token = \Defender\Token::generate_token($options['form_id'], $options['max_tokens'], $options['remote_url']);

               // Begin Form
               echo "<form id='".$options['form_id']."' name='postform' method='POST' action='".$options['remote_url']."'>\n";
               echo "<input type='hidden' name='fusion_token' value='".$token."' />\n";
               echo "<input type='hidden' name='form_id' value='".$options['form_id']."' />\n";
               
               // Form content as usual
               
               echo "</form>\n";



What file(s) is this code in typically also?

Please note that any MySQL errors will halt the Infuse as a whole, generic upgrade lines that fail or generic table modification attempts on non existing tables will result in a failure.


I'd greatly appreciate answers to my questions, if you will, please. I am just learning how to update the Infusions so I am a little confused on a few things but would like to update them myself instead of paying someone to do it! It will save me tons of money and make me happy. I will definitely donate some money to the PHP-Fusion Project if I can figure this out and update all the Infusions I want to use and not have to pay others to do it.

Quote

What other files may this need to be placed in?
I know this is for Infusions that include Admin Panels but what file does this code go in? What are the files for Infusions with Admin Panels typically called? Also, is DEMO what goes in


/infusions/infusion.php , is the file for this. See examples, perhaps Shoutbox is least complex to study.

Quote

I know this is for Infusions that include Admin Panels but what file does this code go in? What are the files for Infusions with Admin Panels typically called? Also, is DEMO what goes in

DEMO is Admin rights for the Addon, it should already be present in infusion.php

Quote

what is each of the pages 1-4 if you do not mind explaining a bit more.

1 is Content Admin
2 is User Admin
3 is System Admin
4 is Settings

Quote

What file(s) can this code typically be found in?

Any file that have a submit form.

Quote

What file(s) is this code in typically also?

That code is a work-around to void using new Dynamic forms instead of <form></form> for token generation.
[b]
Thank you very much for the explanation and everything Falk. That will certainly help me updated some Infusions I want to update with needing to hire a developer, hopefully. Thanks for sharing this! It would be absolutely wonderful if the main site had a Tutorials section and this could be posted there.... just an idea!
[/b]
I am getting ready to try to update my very first Infusion to work with PHP-Fusion v9. I will report back here and let everyone know how it goes and if I run into problems, I will definitely report back here for that as well. If I am able to successfully update the Infusion and it can be shared with everyone, I will attach it here (or post it in the Infusions Forum Thread, whichever is best) so others can download and use it as well but I will ask before I do so. Hopefully, all goes well and this is as simple as it sounds! Thanks again for providing this Tutorial Falk!
If adding site links, panels, weblinks, downloads etc, for your website in the infusion.php file of your infusion, keep in mind that the user levels for V9 are negative instead of positive numbers.
So visibility goes as: 0 = guest, -101 = member, -102 is admin, -103 is superadmin.

So don't forget to update this numbers!
Thread Information
Author
Replies
7 posts
Views
3296 times
Last Post
Last updated on 2 days ago
You can view all discussion threads in this forum.
You cannot set up a bounty in this discussion thread.
You can start a new discussion thread in this forum.
You cannot reply in this discussion thread.
You cannot start on a poll in this forum.
You cannot upload attachments in this forum.
You can download attachments in this forum.
You cannot up or down-vote on the post in this discussion thread.
Users who participated in discussion: Falk, douwe_yntema, SkeeredOfMyMind