User Tools

Site Tools


plugins:creation

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
plugins:creation [2014/02/07 09:16]
datiswous [Custom Functions]
plugins:creation [2017/01/19 22:08] (current)
lokothodida [Internationalization (I18N)]
Line 156: Line 156:
       - edit.png       - edit.png
 </​code>​ </​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** ''​register_plugin''​ is called):
 +
 +<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>​
 +
 +For more information,​ go to [[plugins:​i18n|Plugins & Languages (I18N)]].
  
 ==== Data & Settings ==== ==== Data & Settings ====
Line 161: Line 210:
 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';​ 
 +$chmod_mode ​   = 0755; 
 +$folder_exists = file_exists($folder) || mkdir($folder,​ $chmod_mode);​ 
 + 
 +// Save the file (assuming that the folder indeed exists) 
 +if ($folder_exists) { 
 +  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 254:
 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 267:
 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 278:
 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 289:
 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 303:
 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
plugins/creation.1391764604.txt.gz · Last modified: 2014/02/07 09:16 by datiswous