Click anywhere to close this dialog

Farewell

Great is the art of beginning, but greater is the art of ending
Henry Wadsworth Longfellow

I announce that I cease all development and activity in the programming universe indefinitely. My career has reached the turning point I was not expecting for at least another year, leaving me highly off guard and without laid-out plans for this hobby's continuity. I have begun a 5-year residency program in Neurosurgery which is clearly not compatible, time-wise, with programming.

I gave in all my passion for developing, and you gave me back your loyalty and trust, even when I did not deserve that much. Now it is the time for payback. I release all my present and past work as Open Source software, in the hope some talented developer will continue maintaining and expanding my vision of a modern, sleek forum software. The intrinsic flexibility of MyBB is the true hidden gem of an otherwise outdated codebase; I do hope the project can continue and be updated complying to the latest coding standards.

I hereby thank Euan, kawaii, andrewjs18, Ben, Matt, Omar G., effone, Eric J., Devilshakerz, Wildcard, JordanMussi and all the other team members I have had the opportunity to work with when I was a MyBB team member. I thank Tomm M, my mentor, who inspired me to pick up coding with his piece-of-art plugins. And finally, I thank all of you MyBBoost subscribers who have helped me getting through my toughest university years economically.

Yours sincerely, Filippo

ThunderBoard beta 6

17 Apr 2016 Edited
#1
ThunderBoard is a plugin currently in development stages which aims to speed up same-page loads on MyBB forums.

[Image: a5xT9bh.gif]

Minimum requirements


PHP 5.4
MyBB 1.8.0
PluginLibrary

Features


ThunderBoard loads same-page changes with AJAX using TurboLinks. For example, you can switch between forum pages without reloading the entire page and changing just the necessary elements. This lets your users enjoy a faster and smoother navigation. See the picture above or test the plugin by browsing between pages here on MyBBoost.

To install and configure ThunderBoard, read ThunderBoard documentation


Found a bug?


Feel free to open a thread in ThunderBoard's forum, describing your issue. Testing is an important and valuable tool to improve ThunderBoard.

ThunderBoard is on GitHub


If you are a developer and want to improve ThunderBoard on your own, you can fork the project on GitHub and issue as many pull requests as you want.


This project is licensed under

MIT


A simple license with little to no use restrictions, except for author's crediting. Read the provided LICENSE file for more informations.

Permissions

Commercial use
Modification
Distribution
Private use
Limitations

Warranty
Liability
Conditions

License notice
Copyright notice
Filename Size Downloads
24.08 KB 225
turkeymap, Tac, Eldenroot And 3 others like this post
Shade 6 Aug 2017
#91
The good news: you are extremely helpful spotting bugs, and you are maybe the only one motivating me going on with this extremely complex plugin.

The bad (double) news: you've picked up the two plugins which can't be reloaded with the new tool and require more developing. 2/2, nice record.

Specifically:
  • Google reCAPTCHA exploits document.write to add its content to the page. This lets you set it up with extreme simplicity, while it conflicts with ThunderBoard's single-page application model.
    ThunderBoard grabs the script and puts it in the head of the document, which means Google shows its reCAPTCHA writing off the whole document. I've already overcame this issue by neutralizing the document.write() function, but it's just a temporary patch to let ThunderBoard work in the few pages where MyBB does some document.write()ing. This needs a definitive patch, but it's proven to be a difficult challenge indeed;
  • it's not that Rin Editor is bad. It's just pure evil. With all good respect, it's like it was written by feet while blinded in a room full of tasers, Jackass' style. It does not follow any coding style known to mankind and it looks like a chunked rubble of snippets taken from StackOverflow. Which isn't bad practice, SO is something every coder has copied from once in their lives, but usually you also would adapt it to your needs and standards, which is something clearly missing in this project.

    To make it ThunderBoard-ready, you would need to edit its template manually to transform the chained variable definitions into single definitions, separated by semicolons (not with comas); still, you would not be able to use it with ThunderBoard given it seem to use document.write()s too, and it adds extra stylesheets/javascripts with querystrings which are not supported by ThunderBoard's static cache (this is partially my fault – I need to see if I can hijack jQuery's append method to get rid of the querystring before adding the content).

It's hard to say when these issues will be fixed.
Tac 7 Aug 2017 Edited
#92
Hahah I do appreciate your honesty, as I am happy to help. This is my one of my favorite plugins, along with the other excellent plugins you've created for MyBB.

Question: Will iframes cause conflicts as well? Whenever an iframe is added, it is transformed to text.

Edit: After a bit of searching, not sure if this is intentional, line 38 in inc/plugins/Thunderboard/class_core.php replaces values that start with <if with their HTML entities equivalents. This has been conflicting with <iframe>'s.
Shade 7 Aug 2017
#93
Good spot. You can download the corrected version from GitHub, I've just pushed a commit to fix this.
Tac likes this post
asdf 9 Aug 2017
#94
how do i change the colour?
Shade 9 Aug 2017
#95
Hi, open app-loading.css in your theme, search for the .loading-bar class and the following CSS property:

background: #ff015e
Change it to whatever you like.
WallBB 16 Sep 2017
#96
Hi Shade,
I am using PHP Version 7.0.23 and getting below Warnings :-
<error>
<dateline>1505568164</dateline>
<script>inc/plugins/ThunderBoard/class_core.php</script>
<line>40</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>DOMDocument::loadHTML() expects parameter 2 to be integer, string given</message>
</error>

<error>
<dateline>1505568164</dateline>
<script>inc/plugins/thunderboard.php</script>
<line>421</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>array_unique() expects parameter 1 to be array, null given</message>
</error>

<error>
<dateline>1505568164</dateline>
<script>inc/plugins/thunderboard.php</script>
<line>421</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>implode(): Invalid arguments passed</message>
</error>

<error>
<dateline>1505568169</dateline>
<script>inc/plugins/ThunderBoard/class_core.php</script>
<line>40</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>DOMDocument::loadHTML() expects parameter 2 to be integer, string given</message>
</error>

<error>
<dateline>1505568169</dateline>
<script>inc/plugins/thunderboard.php</script>
<line>421</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>array_unique() expects parameter 1 to be array, null given</message>
</error>

<error>
<dateline>1505568169</dateline>
<script>inc/plugins/thunderboard.php</script>
<line>421</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>implode(): Invalid arguments passed</message>
</error>

<error>
<dateline>1505568171</dateline>
<script>inc/plugins/ThunderBoard/class_core.php</script>
<line>40</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>DOMDocument::loadHTML() expects parameter 2 to be integer, string given</message>
</error>

<error>
<dateline>1505568171</dateline>
<script>inc/plugins/thunderboard.php</script>
<line>421</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>array_unique() expects parameter 1 to be array, null given</message>
</error>

<error>
<dateline>1505568171</dateline>
<script>inc/plugins/thunderboard.php</script>
<line>421</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>implode(): Invalid arguments passed</message>
</error>

<error>
<dateline>1505568172</dateline>
<script>inc/plugins/ThunderBoard/class_core.php</script>
<line>40</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>DOMDocument::loadHTML() expects parameter 2 to be integer, string given</message>
</error>

<error>
<dateline>1505568172</dateline>
<script>inc/plugins/thunderboard.php</script>
<line>421</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>array_unique() expects parameter 1 to be array, null given</message>
</error>

<error>
<dateline>1505568172</dateline>
<script>inc/plugins/thunderboard.php</script>
<line>421</line>
<type>2</type>
<friendly_type>Warning</friendly_type>
<message>implode(): Invalid arguments passed</message>
</error>
Shade 16 Sep 2017
#97
Check your libxml version (must be >= 2.7.7).
WallBB 16 Sep 2017
#98
Check your libxml version (must be >= 2.7.7).
Shade (16 Sep 2017)
It is 2.7.6, that must be the reason for it.
I will change that now Shade :)
WallBB 18 Sep 2017 Edited
#99
Hi Shade,
I fixed the libxml version to 2.9.1 and the warning are gone, thanks for the information.
Below are my few queries :-
1. Now Thunderboard activated successfully but I see a page without css.
I modified the setting of Thunderboard(Merge Stylesheet) to No, that also is not affecting.
But once I removed the minify css and js option, it started working. I wonder why minify is not working for me.
I believe I need to do some modifications for the forum, do you know what might be the issue ?

2. Lazy load is enabled on my forum but I don't see images even after waiting for long time. Only if I do refresh, I see images.

3. Is it possible to change the red progress bar to any other color ? Also can we modify it so that the speed at which it move is slower that it is by default ?

Let me know your response Shade :)
Thanks for creating this awesome plugin.

Regards
WallBB
Shade 19 Sep 2017
Lazy loading uses JavaScript and it can be blocked if there are JS errors, look them up in your browser console. As for the bar color, you can adjust it by tweaking around with the app-loading.css stylesheet added to every theme.