*
* Find the right template file.
*
- * Templates are expected to be found in the template set directory
- * (for example SM_PATH/templates/<template name>/) or, in the case
- * of plugin templates, in a plugin directory in the template set
- * directory (for example,
- * SM_PATH/templates/<template name>/plugins/<plugin name>/) *OR* in
- * a template directory in the plugin as a fallback (for example,
- * SM_PATH/plugins/<plugin name>/templates/<template name>/). If
- * the correct file is not found for the current template set, a
+ * Templates are expected to be found in the template set directory,
+ * for example:
+ * SM_PATH/templates/<template name>/
+ * or, in the case of plugin templates, in a plugin directory in the
+ * template set directory, for example:
+ * SM_PATH/templates/<template name>/plugins/<plugin name>/
+ * *OR* in a template directory in the plugin as a fallback, for example:
+ * SM_PATH/plugins/<plugin name>/templates/<template name>/
+ * If the correct file is not found for the current template set, a
* default template is loaded, which is expected to be found in the
- * default template directory (for example, SM_PATH/templates/default/)
- * or for plugins, in a plugin directory in the default template set
- * (for example, SM_PATH/templates/default/plugins/<plugin name>/),
- * *OR* in a default template directory in the plugin as a fallback
- * (for example, SM_PATH/plugins/<plugin name>/templates/default/).
+ * default template directory, for example:
+ * SM_PATH/templates/default/
+ * or for plugins, in a plugin directory in the default template set,
+ * for example:
+ * SM_PATH/templates/default/plugins/<plugin name>/
+ * *OR* in a default template directory in the plugin as a fallback,
+ * for example:
+ * SM_PATH/plugins/<plugin name>/templates/default/
+ *
+ * Plugin authors must note that the $filename MUST be prefaced
+ * with "plugins/<plugin name>/" in order to correctly resolve the
+ * template file.
*
* @param string $filename The name of the template file,
* possibly prefaced with
. $this->get_template_file_directory()
. substr($filename, strlen($plugin_name) + 9);
- // no go, we have to get the default template
- // from the plugin
+ // no go, we have to get the default template,
+ // first try the default SM template
//
if (!file_exists($filepath)) {
- $filepath = SM_PATH . 'plugins/' . $plugin_name . '/'
+ $filepath = SM_PATH
. $this->get_default_template_file_directory()
- . substr($filename, strlen($plugin_name) + 9);
+ . $filename;
- // no dice whatsoever, return empty string
+ // still no luck? get default template from the plugin
//
if (!file_exists($filepath)) {
- $filepath = '';
+
+ $filepath = SM_PATH . 'plugins/' . $plugin_name . '/'
+ . $this->get_default_template_file_directory()
+ . substr($filename, strlen($plugin_name) + 9);
+
+ // no dice whatsoever, return empty string
+ //
+ if (!file_exists($filepath)) {
+ $filepath = '';
+ }
+
}
}