This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
plugins:creation [2014/02/07 09:18] datiswous [Additional plugin files] |
plugins:creation [2017/01/18 17:40] lokothodida [Data & Settings] |
||
---|---|---|---|
Line 155: | Line 155: | ||
- delete.png | - delete.png | ||
- edit.png | - edit.png | ||
+ | </code> | ||
+ | |||
+ | ==== Internationalization (I18N) ==== | ||
+ | If your plugin displays messages to your user/administrator, you will want to allow those messages to be localised to the language of the installation. You do this by having a ''/lang'' folder, which has PHP files for each language: | ||
+ | |||
+ | <code> | ||
+ | - lang (directory) | ||
+ | - .htaccess (with one line: Deny from all) | ||
+ | - en_US.php | ||
+ | - de_DE.php | ||
+ | - it_IT.php | ||
+ | </code> | ||
+ | |||
+ | Each file should have one variable: an ''$i18n'' array, which has ''key => value'' mappings for the various messages: | ||
+ | |||
+ | <code php> | ||
+ | <?php | ||
+ | // en_US.php | ||
+ | $i18n = array(); | ||
+ | $i18n['PLUGIN_TITLE'] = 'My Plugin'; | ||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | To register your i18n array, call ''i18n_merge'' with the ID of your plugin (**before the plugin is registered**): | ||
+ | |||
+ | <code php> | ||
+ | i18n_merge($plugin_id); | ||
+ | </code> | ||
+ | |||
+ | This registers ''$i18n'' for your plugin with the installation's language, but you might not have such a language file created. In order to set up a default language, you can register a fixed language if ''i18n_merge'' returns ''false''. | ||
+ | |||
+ | <code php> | ||
+ | // Sets the default to English | ||
+ | if (!i18n_merge($plugin_id)) i18n_merge($plugin_id, 'en_US'); | ||
+ | </code> | ||
+ | |||
+ | Or the clearer: | ||
+ | |||
+ | <code php> | ||
+ | i18n_merge($plugin_id) || i18n_merge($plugin_id, 'en_US'); | ||
+ | </code> | ||
+ | |||
+ | Once that is done, you can call a localised string by using ''i18n_r'' (to ''return'' the string) or ''i18n'' (to ''echo'' it). You do this by prefixing your key with your plugin's ID: | ||
+ | |||
+ | <code php> | ||
+ | // Prints "My Plugin" if the language is English | ||
+ | i18n($plugin_id . '/PLUGIN_TITLE'); | ||
</code> | </code> | ||
Line 161: | Line 208: | ||
If you need to save your data to a file on the server, we recommend saving it to a new folder within the ''GSDATAOTHERPATH'' path. For example: If your plugin needs to save the Google Analytics's UA-XXXXX id for the site, it would be best if you saved it within the folder ''/path/to/getsimple/data/other/my_plugin_folder/ua-data.txt'', where ''/my_plugin_folder/'' is the folder you create and ''ua-data.txt'' is the file that holds your data. | If you need to save your data to a file on the server, we recommend saving it to a new folder within the ''GSDATAOTHERPATH'' path. For example: If your plugin needs to save the Google Analytics's UA-XXXXX id for the site, it would be best if you saved it within the folder ''/path/to/getsimple/data/other/my_plugin_folder/ua-data.txt'', where ''/my_plugin_folder/'' is the folder you create and ''ua-data.txt'' is the file that holds your data. | ||
- | When saving or accessing files and folders within a GetSimple installation, it is always best to use the defined constants set by the system. You can get the list of contents from the ''/admin/inc/common.php'' file, or by looking at our [[http://code.google.com/p/get-simple-cms/source/browse/trunk/admin/inc/common.php|svn copy of it]]. | + | <code php> |
+ | // Set up the data | ||
+ | $data = '<Your Data Here>'; | ||
+ | |||
+ | // Set up the folder name and its permissions | ||
+ | // Note the constant GSDATAOTHERPATH, which points to /path/to/getsimple/data/other/ | ||
+ | $folder = GSDATAOTHERPATH . '/' . $plugin_id . '/'; | ||
+ | $filename = $folder . 'ua-data.txt'; | ||
+ | $chmodMode = 0755; | ||
+ | $folderExists = file_exists($folder) || mkdir($folder, $chmodMode); | ||
+ | |||
+ | // Save the file (assuming that the folder indeed exists) | ||
+ | if ($folderExists) { | ||
+ | file_put_contents($filename, $data); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | When saving or accessing files and folders within a GetSimple installation, it is always best to use the defined constants set by the system (as illustrated above). You can get the list of contents from the ''/admin/inc/common.php'' file, or by looking at our [[http://code.google.com/p/get-simple-cms/source/browse/trunk/admin/inc/common.php|svn copy of it]]. | ||
===== Scripts & Styles ===== | ===== Scripts & Styles ===== | ||
Line 188: | Line 252: | ||
To use your script you must first register it with the system. | To use your script you must first register it with the system. | ||
- | <code> | + | <code php> |
// register_script($handle, $src, $ver, $in_footer=FALSE) | // register_script($handle, $src, $ver, $in_footer=FALSE) | ||
// $handle name for the script, must be unique for each script loaded | // $handle name for the script, must be unique for each script loaded | ||
Line 201: | Line 265: | ||
To queue and load a registered script use: | To queue and load a registered script use: | ||
- | <code> | + | <code php> |
// queue_script($name,$where); | // queue_script($name,$where); | ||
// $name name of the script to load | // $name name of the script to load | ||
Line 212: | Line 276: | ||
To register a script from your plugin folder use | To register a script from your plugin folder use | ||
- | <code> | + | <code php> |
register_script('pluginscriptname', $SITEURL.'plugins/my_plugin_folder/your.script.js', '0.1', FALSE); | register_script('pluginscriptname', $SITEURL.'plugins/my_plugin_folder/your.script.js', '0.1', FALSE); | ||
</code> | </code> | ||
Line 223: | Line 287: | ||
To use your own stylesheets you must first register them with the system. | To use your own stylesheets you must first register them with the system. | ||
- | <code> | + | <code php> |
// register_sstyle($handle, $src, $ver) | // register_sstyle($handle, $src, $ver) | ||
// $handle name for the style, must be unique for each style loaded | // $handle name for the style, must be unique for each style loaded | ||
Line 237: | Line 301: | ||
To queue and load a registered style use: | To queue and load a registered style use: | ||
- | <code> | + | <code php> |
// queue_style($name,$where); | // queue_style($name,$where); | ||
// $name name of the style to load | // $name name of the style to load |