CMS Text
You can view the source on GitHub.
Helper function:
<?= cms_text_html('content'); ?>
Example where the heading is separate... this is useful if the heading will also be used in the site navigation, or on the page <title>:
<?= cms_text_html(array('section' => 'heading', 'wrapper_tag' => 'h1')); ?> <?= cms_text_html(array('section' => 'content')); ?>
Configuration
Change path... must be done before calling the above helper function, but often used when you have a /item/123/ type page, and don't want the 123 being used in the path:
config::set('cms.default.path', '/item/');
To make editable:
config::set('cms.default.editable', ADMIN_LOGGED_IN);
Full object version
Initialisation with profile or config:
$cms_text = new cms_text('profile'); $cms_text = new cms_text(array( 'profile' => 'example', 'revision' => 0, 'processor' => 'markdown', 'editable' => false, // See above 'log_missing' => true, 'versions' => [], // See below 'priority' => [], // See below ));
The 'profile' allows you to have use config variables:
$config['cms.profile.name'] = 'value';
To retrieve the HTML content:
echo $cms_text->html('section'); echo $cms_text->html(array( 'path' => '/', 'section' => 'content', 'default' => 'Lorem ipsum dolor sit amet...', 'variables' => array('count' => 5), // e.g. "You have [COUNT] messages" - note the issue with 1 message (singular) in English 'wrapper_tag' => 'div', 'editable' => false, // Default from init 'log_missing' => true, // Default from init 'global' => false, // Make globally available to all pages (e.g. the page title) 'marker' => 'marker', ));
Version support
Set via config:
$config['cms.default.versions'] = []; $config['cms.default.priority'] = [];
Or when creating the cms_text
object:
$cms_text = new cms_text(array( 'priority' => [], ));
Version example - should be fixed for the profile:
versions = array( 'English' => array('lang' => 'en', 'country' => ''), 'French' => array('lang' => 'fr', 'country' => ''), 'Spanish' => array('lang' => 'es', 'country' => ''), 'Canadian French' => array('lang' => 'fr', 'country' => 'ca'), );
Priority examples:
priority = array('English'); // Try English, then move onto the default. priority = array( 'Canadian French', 'French', 'English', ); // Try Canadian French first, French, English, then the default.
Helper methods
cms_text::cache_files(); cms_text::cache_clear();
This will return/clear all cache files, or you can pass in a path for a particular page.
Explain about cms_tags/cms_markdown
.
https://www.w3.org/International/articles/composite-messages/Overview
https://www.localeapp.com/
And the cms_text controller for the admin.