The error message tells you where the error occors:
/Users/user1/Documents/DEV/+htdocs/tshirtshop/libs/smarty/internals/core.assemble_plugin_filepath.php, line 21
The first 21 lines of that file:
<?php
/**
* Smarty plugin
* @package Smarty
* @subpackage plugins
*/
/**
* assemble filepath of requested plugin
*
* @param string $type
* @param string $name
* @return string|false
*/
function smarty_core_assemble_plugin_filepath($params, &$smarty)
{
static $_filepaths_cache = array();
$debugging = !empty($_COOKIE['SMARTY_DEBUG']) ? $_COOKIE['SMARTY_DEBUG'] :"1";
if (isset($_SERVER['QUERY_STRING']) && $params){
$_readable = false;
if (assert($debugging) && file_exists($params['resource_name']) && is_readable($params['resource_name'])) {
I start getting a bit nervous when I see that the phpdoc comment block at the start of this function says that it expects two string parameters named $type and $name, yet the actual declaration expects $params and $smarty, and apparently expects $params to be an array, not a string.
Anyway, if we go to the Smarty.class.php file that the backtrace indicates is calling the above function, we fine the following method:
/**
* get filepath of requested plugin
*
* @param string $type
* @param string $name
* @return string|false
*/
function _get_plugin_filepath($type, $name)
{
$_params = array('type' => $type, 'name' => $name);
require_once(SMARTY_CORE_DIR . 'core.assemble_plugin_filepath.php');
return smarty_core_assemble_plugin_filepath($_params, $this);
}
It creates an array named $_params with two keys: 'type' and 'name'. Therefore it is calling the smarty_core_assemble_plugin_filepath() method with the first parameter being an array, which is what it expects, but there is no element in that array named 'resource_name', and thus the notification.
Assuming this is the latest stable version from Smarty and that you have not modified it, it would seem to be sloppy coding on their part at best, and potentially an outright bug, depending on how important that function is and what the ramifications are of that array element not existing.