There are several reasons why installing a new plugin/addon/theme can fail. I don't think there is a comprehensive overview of what an admin can do when problems arise...
1. Target Folder Structure
Note: in some older plugins the main plugin file might be named
default.php. That is perfectly okay and no reason for any worries.
When you download a plugin you have to unzip it and move its content to the
The file structure afterwards must read:
When you end up with
/plugins/somePluginsName-1.0.0/somePluginsName/class.somepluginsname.plugin.php you have done something wrong and you will never be able to enable the plugin.
Addons must be unzipped to the
/applications folder. Check if you can find
If there is one more folder or one folder less in that structure, you've messed something up.
All files must be directly unzipped to the
/themes folder and all themes have an
about.php file in their root folder. So you can check if you have unzipped it correct if the path to the new theme looks like that
2. Target Folders Name
Note: upper-/lower case is important!
If you unzip what you have downloaded, the folder name will in almost all cases already match, so this paragraph is only useful for trouble shooting.
Open the plugin/the about.php file. Depending on what you look at, one of the first lines of code would look like that
$PluginInfo['somePluginName'] = array(
$ApplicationInfo['someAddonName'] = array(
$ThemeInfo['someThemeName'] = array(
The key of the array (the "someName" part) is how you would have to name the folder. If it is all lower case, your folder must be all lower case, if it is all mixed case, the folder must reflect that, too.
Uploading a plugin/addon/theme doesn't change your forum. You have to enable it first in the dashboard.
3.1 Errors When Enabling
Enabling a plugin/addon/theme ("extension") throws an error. There are some things you could solve by yourself, but normally you are lost:
- If the extension requires another extension, enable that extension first.
- If the extension throws a "Vanilla version x.y required" error, you can try to change a line in the PluginInfo array that begins with "RequiredApplications", but there is no guarantee that it will work
- Try to disable all other plugins, addons and revert to the default theme and retry to enable ths extension
- Visit the addon page here at the community and click on the "Ask a Question" button. Describe your problem as good as you can and give information which theme and plugins you are using and what you have tried by now to solve the problem. Afterwards wait patiently...
- If enabling a theme fails, make sure the folder of the current theme is spelled correct
3.2 Plugin/Addon/Theme is Not Visible
Although an extension has been uploaded to the correct path, it might not be included in the list of available plugins/addons/themes in the dashboard. The reason is, that the info in the header of an extension is cached. The only thing you have to do is to invalidate the cache so that it is renewed and the new extension will be included in the list.
But invalidating that cache isn't always easy.
- If you are using memcached, restart the memcached service. If you don't know if you are using memcached, I'm convinced you do not use it.
- Look in the
/cachefolder. There should be a file called
addon.phpwhich caches information about plugins and addons and a
theme-index.phpfile which holds information about the available themes. Delete the file you need (or even both if you are unsure) and refresh the plugins/addons/themes list
If something unpredictable is going on, your extension still might not be included in the list. There is one thing you can do, but it could temporarily create an error message in your forum, for a few seconds only and it is not said that there really would be an error message, but at least it could happen. Nevertheless the process itself isn't dangerous.
- Make a backup of the
- Open that file in an editor
- If you have a problem with a plugin, search for a line like
$Configuration['EnabledPlugins']['somePluginsName'] = false;. If you find that line, you simply have been too dumb to see the plugin in the list. Go and open the list again. The plugin is contained in the list. You just have to search harder.
- If the entry is not present in the config file, add it to the bottom. Change
falseto true and quickly(!) do the next steps.
- Open your forums dashboard, go to the plugins page, refresh it and you would see the plugin now. Disable it! Yes, that is an important step, disable it. Now you can enable it the normal way. The reason why you should disable and re-enable it is, that some plugins do some extra actions when they are enabled through the dashboard. When you enable them manually they skip this extra step and might not work correct
4. Disabling Fails
Check "2. Target Folders Name"
Missed the 3.0 release? Check out the upgrade & release notes here.
Hi everyone! The team has been hard at work over the last month fixing bugs and security holes and even squeezing in a new feature. There should be no breaking changes in this release so it should be a very straightforward update.
- Vanilla 3.x requires PHP 7.1 which is a change from earlier versions. We strongly recommend upgrading to PHP 7.3 as soon as possible. Many hosting plans allow a seamless transition via their control panel.
- Follow the normal upgrade process, including running /utility/update.
- Follow additional specific upgrade instructions.
- Test your plugin & theme compatibility in a safe place before upgrading your production forum.
Get over in the addon directory. https://open.vanillaforums.com/addon/vanilla-core-3.1
For the forum I host, I needed to create a plugin that would allow for filtering searches, without the use of additional software (like Sphinx), as my server host does not support it. This lead to the creation of the FilterForumSearch plugin:
You can find the plugin here: https://open.vanillaforums.com/addon/filteredforumsearch-plugin-2.0
The plugin supports the following filters:
- Q&A status
- Comment/Reply count
The plugin has no dependencies outside of Vanilla and the Q&A plugin. This allows it to work with Shared hosting plans and other server plans that otherwise wouldn't allow for filtered searching through additional software. The plugin works by using an SQL query to retrieve data based on the parameters passed in, using Vanilla's SQL interface to (hopefully) minimize SQL injection potential.
Hopefully this plugin will be helpful for others who are looking for search filters but cannot install additional software.
Motivation behind creation
One of the members of the forum I host mentioned that they would prefer additional search parameters/filters to make it easier to find if similar questions have already been answered by using the search page in Vanilla. To me, this was a reasonable request, so I set about finding a solution.
One of the admins on the forum suggested the SphinxSearch plugin, which would have worked great and provided everything we need. Unfortunately, I discovered that my server provider does not have Spinx support with the hosting plan I have bought, making this plugin unusable for the forum.
I found the CategorySearch plugin, which uses SQL queries to filter the search, which looked like exactly what I was looking for. However, the plugin didn't work with the version of Vanilla the forums is using, 2.8.3 currently. After trying to get it to work for a few hours with no result, which is probably due to my lack of PHP experience, I decided to rewrite the non-working parts of the plugin entirely, using a slightly different method than the original.
Having made this decision, I set about rewriting a good chunk of the plugin, using the CategorySearch plugin as a reference. After a couple days of work, testing, and debugging, I finally had a working plugin that filters searches using direct SQL queries.
After this, it was pointed out to me that using SQL queries directly could introduce security vulnerabilities, so I rewrote the plugin to use Vanilla's SQL interface instead and removed all direct SQL queries, hopefully removing and vulnerabilities I introduced through the plugin.
Once I had that working, I cleaned a few things up, changed the plugin info, and uploaded it both here and to the GitHub repository holding all of the modified plugins for the forum I'm hosting.
Huge thanks to @R_J, the creator of the CategorySearch plugin! Using the plugin as a base was extremely helpful and greatly sped up the time it would have taken to write the plugin if I wrote it entirely from scratch.
One major thing I am not sure about, is the PHP code I wrote for the plugin.
While I have SQL experience, I only have used PHP minimally, so the code may be poorly written. If someone with PHP/SQL experience does not mind looking at the plugin and it's code, I would highly appreciate it! I think the code is probably stable and secure enough for most cases, but I'm concerned that I might have missed something obvious.