Frog 0.9.5 stable released

The Frog development team is pleased to announce that we’ve released Frog 0.9.5 stable. Some major changes went into this release which make this a significant step towards a 1.0 release.

We would like to highlight some items in the changelog:

For plugin developers, it will be interesting to note that a number of API calls were added that will simplify the work of creating a plugin and should generally speed up development. These are:

  • Plugin::isEnabled($plugin_id) (allows for basic plugin dependancies.)
  • getSetting($var_name, $plugin_id)
  • setSetting($var_name, $value, $plugin_id)
  • getAllSettings($plugin_id)
  • setAllSettings($array, $plugin_id)

We also added a new core plugin called “skeleton” to help out new plugin developers by setting up a basic plugin as an example.

In other news, we’ve added a translation template generator to help out translators with translating Frog core and plugins. Please see the comment & link on the right side of the Language selector in the Settings tab of the Administration section in Frog.

We’ve also removed the split that existed between the frontend and backend in Frog 0.9.4. We also fixed a long standing problem with GET variables not being available in Frog’s frontend.

Lastly but certainly not least, we’ve changed the license to GNU General Public License version 3 for Frog and all of its core plugins. Frog uses the GNU GPL with an exception for plugins which allows plugin developers to choose a different license for their plugin under certain conditions. Please see exception.txt in Frog’s root directory for the full text.

Please see the download page.

List of changes in 0.9.5 stable

  • Added experimental Global XSS filtering, by default turned off. To turn on add define(‘GLOBAL_XSS_FILTERING’, true) to config.php – issue 162
  • Added advisory about removing changelog.txt to install screen.
  • Added output buffering around main() – issue 114
  • Added option to choose administrator name in install screen. – issue 149
  • Added function that generates administrator password during install routine. – issue 149
  • Added check to make sure config.php isn’t writable.
  • Added inheritence to hasContent() function. – issue 142
  • Added icon to directories in file_manager plugin – issue 140
  • Added Plugin::isEnabled($plugin_id) to Plugin class for plugin devs. (allows for basic plugin dependancies.)
  • Added getSetting(), setSetting(), getAllSettings() and setAllSettings() to Plugin class for plugin devs – issue 128
  • Added comments plugin option to display to-be-moderated comments on plugin tab (default true)
  • Added MySQL port to install screen. Thanks gilles.doge – issue 107
  • Added new events – issue 94
  • Added site identifiers to login screens (both login.php and forgot.php) based on Admin screen title setting.
  • Added front-end login feature similar to layout selector. (login required, not required, inherit)
  • Added drag-to-copy feature for better multi-language support. Thanks tuupola.
  • Added a new core plugin called skeleton to help out new plugin developers.
  • Added translation template generator to help out translators with translating Frog core and plugins.
  • Added Norwegian and Swedish core translations.
  • Added updated Chinese translation.
  • Removed split between frontend and backend.
  • Added an ID to the “view this page” link so it can be styled.
  • Added Danish translation for admin and file manager. Thanks Kenan.
  • Added Croatian translation for admin and file manager. Thanks jackie.
  • Fixed small bug with wrong link to rss feed in Normal theme – issue 166
  • Fixed bug with default tab listing showing controller which had set show_tab to false.
  • Fixed some SQLite related problems in the comment plugin
  • Fixed some i18n issues – issue 158
  • Fixed default_tab setting causing endless redirect – issue 106
  • Fixed issue with ‘title’ attribute in link(). Removed auto-generation of attribute for accessibility purposes. – issue 154
  • Fixed issue with Comment plugin where leave off http:// in website link would cause malformed url – issue 151
  • Fixed issue where using ‘..’ would allow access to files outside public directory – issue 148
  • Fixed issue where saving page layout without title did not result in error – issue 146
  • Fixed setAllSettings failing to update settings with SQLite – issue 145
  • Fixed issue with page_requested event parameter not being backwards compatible – issue 141
  • Fixed USE_MOD_REWRITE is undefined in case of system not yet being installed – issue 132
  • Fixed issue with failed login redirecting to admin section once logged in. – issue 131
  • Fixed issue with settings table. Changed table setting’s field value to TEXT instead of VARCHAR.
  • Fixed GET variables not being available in Frog’s frontend. – issue 75
  • Fixed issue where AutoLoader did not find file for ‘PageArchiveMonthIndex’ – issue 101
  • Fixed issue where saving a page without title results in loss of entered content – issue 68
  • Fixed issue with filename lowercasing during upload of files. Thanks david – issue 113
  • Fixed previous()/next() functions to work for all levels. Thanks rid – issue 109
  • Fixed “Add child” tooltip for browsers not picking up the alt value of the icon.
  • Fixed broken View Site link for TLDs starting with ‘a’ – issue 116
  • Fixed XHTML compatibility problem with Comment plugin.
  • Fixed issue where only the last addJavascript was accepted.
  • Fixed admin CSS so that foreground colours are declared – issue 137
  • Fixed MOD_REWRITE test which produced double slashes – issue 150
  • Removed two nbsp statements from layout\edit.php – issue 168
  • Updated license statements to reflect change to GNU GPLv3 with an exception.
  • Improved replacement of letters like ö in the slug
  • Improved default 404 message for useability. – issue 163
  • Updated chinese translation – thanks westup
  • Updated comment plugin to make use of statistics_api plugin if available and enabled.
  • Restricted access to backend to roles administrator, developer and editor – issue 122
  • Updated readme.txt with requirements detail for MySQL server.
  • Updated file_manager plugin translations to conform to new template.
  • Updated comments in preparation for PHPDoc documentation.
  • Renamed root dir text files to avoid name conflicts and accomodate Windows users.
  • Renamed style.css into screen.css for more consistency with print.css in Normal layout.
  • Simplified Comment plugin to make use of Plugin::getAllSettings() and friends.
  • Commented .htaccess file for new users.
  • Removed slug field from Homepage metadata (and initial code fixed).
  • Enhanced comments in config.php template

Upgrading to Frog 0.9.5

Please be aware that we only support single version upgrades. That means you upgrade from 0.9.3 to 0.9.4 and only then to 0.9.5.

If you’re upgrading from a pre-0.9.4 release, consider installing from scratch.

Please be aware that all Frog 0.9.4 plugins except the core plugins will require some minor updates to work with Frog 0.9.5. Please check with the plugin authors for updated plugins.

Upgrade steps from 0.9.4 to 0.9.5

WARNING – The split between frontend and backend in the Frog code has been removed in this version. This has led to significant code and path changes. You will need to update ALL files and directories.

Please remember to MAKE BACKUPS of Frog and your DB before trying to update! The upgrade sequence described below will remove all the old files. Be sure to
have a full backup!

Note: consider testing this upgrade process on a local test system before upgrading your production system.


1. Create a FULL backup of your database. (structure and data)

2. Create a FULL backup of your all your files. (including config.php)

3. Download and unzip Frog 0.9.5 to a temporary directory.

4. Remove the following files/directories from your temporary 0.9.5 directory: – The “public” directory. – The config.php file.

5. Login to the admin section of your 0.9.4 installation and disable all plugins. (plugins generally shouldn’t remove data from the database when being disabled, so this shouldn’t be a problem.)

6. Remove ALL the files of your old Frog 0.9.4 installation EXCEPT the “public” directory. (and except any custom files you may have added of course)

7. Copy/upload ALL files from the temporary directory to your old 0.9.4 Frog installation’s directory.

8. Copy the original config.php file to your new installation.

9. Run the following SQL commands on your Frog database after adding a prefix to the table names if necessary:

### NOTE: MYSQL commands, but SQLite commands should be almost the same.
    CREATE TABLE `plugin_settings` (
      `plugin_id` varchar(40) NOT NULL,
      `name` varchar(40) NOT NULL,
      `value` varchar(255) NOT NULL,
      UNIQUE KEY `plugin_setting_id` (plugin_id,name)

    ALTER TABLE `page`
        ADD `needs_login` tinyint(1) NOT NULL DEFAULT '0' COMMENT '' AFTER is_protected;

    ALTER TABLE `setting`
        MODIFY `value` text NOT NULL DEFAULT '' COMMENT '' COLLATE utf8_general_ci;

10. Enable the new htaccess file by removing the underscore.

11. Check the new htaccess file settings against your old htaccess file.

12. Lastly, you need to add some options to the config.php file that were added in Frog 0.9.5:

    // Should Frog check for updates on Frog itself and the installed plugins?
    define('CHECK_UPDATES', true);

    // The number of seconds before the check for a new Frog version times out in case of problems.
    define('CHECK_TIMEOUT', 3);

13. Re-install any old plugins that your Frog installation were using.

14. Re-enable the plugins one-by-one, each time checking your site remains working.

15. That should be it! Test out your new Frog 0.9.5 system. Remember to remove the write permissions from config.php, otherwise, Frog will complain.

Troubleshooting / notes

- If you don’t see your old comments in the administration area, try disabling and then re-enabling the comment plugin.

- The plugin system was changed in Frog 0.9.5 so try to download and install plugins that are compatible with Frog 0.9.5. Older plugins may or may not work.

- The public directory now contains a themes subdirectory in a default installation. It is advised that all themes for Frog follow the same approach as the Normal theme.

- It is advised to always use the htaccess file. You can dis/enable the url rewriting by setting RewriteEngine to On/Off.

- Please be very aware that this upgrade procedure DID NOT TOUCH or upgrade your “public” directory. It also DID NOT ALTER or upgrade any data in the database. This means you’re still using a pre-0.9.5 Normal theme.

Frog CMS Demo

Public front end website click here
Administration backend click here admin login info:
login: admin
password: demo123

Help us!

There is no profit here. The more we raise the longer we can keep things going and the better it will get.

Click here to lend your support to: Frog CMS and make a donation at !