Snippets for plugins

Snippets for templates are awesome. In some cases snippets can be needed for plugins as well. Maybe we don’t want to mix template snippets with plugin snippets. Instead we keep the plugin snippets in the plugin folder.

Snippets for plugins - Solution

Very simple, but powerful, based on the snippet function in the Kirby core. Change your function name to something unique.

This goes into your plugin file site/plugins/my_plugin/my_plugin.php or any other file called by the plugin:

function pluginSnippet( $file, $data = array(), $return = false ) {
	$plugin = 'my_plugin';
	$folder = 'snippets';
	if( is_object( $data ) ) $data = array( 'item' => $data );
	return tpl::load( kirby()->roots()->plugins() . DS . $plugin . DS . $folder . DS . $file . '.php', $data, $return );
}

echo pluginSnippet( 'test', array('testing' => 'Hoho'), true );

Snippet

This code goes into the site/plugins/my_plugin/snippets/test.php:

<h1><?php echo $testing; ?></h1>

The output would be:

 <h1>Hoho</h1>
3 Likes