Fuentes Las fuentes de los plugins son como una forma generica de suministrar código fuente de template o componentes de script PHP al Smarty. Algunos ejemplos de fuentes: base de datos, LDAP, memoria compartida, sockets, etc. Existe un total de 4 funciones que necesitan estar registradas para cada tipo de fuente. Cada función recibirá el fuente requerido como primer parámetro y el objeto de Smarty como ultimo parámetro. El resto de los parámetros dependen de la función. bool smarty_resource_name_source string $rsrc_name string &$source object &$smarty bool smarty_resource_name_timestamp string $rsrc_name int &$timestamp object &$smarty bool smarty_resource_name_secure string $rsrc_name object &$smarty bool smarty_resource_name_trusted string $rsrc_name object &$smarty La primera función debe devolver el recurso. Su segundo parámetro es una variable pasada por referencia donde el resultado debe ser almacenado. La función debe retornar true si esta pudo recuperar satisfactoriamente el recurso y en caso contrario retornara false. La segunda función debe devolver la ultima modificación del recurso requerido (como un timestamp Unix). El segundo parámetro es una variable pasada por referencia donde el timestamp sera almacenado. La función debe retornar true si el timestamp pudo ser determinado satisfactoriamente, y en caso contrario retornara false. La tercera función debe retornar true o false, dependiendo si el recurso requerido es seguro o no. Esta función es usada solo para recursos de template pero esta debe ser definida. La cuarta función debe retornar true o false, dependiendo si el recurso requerido es seguro o no. Esta función es usada solo para componetes de script de PHP solicitado por las etiquetas include_php o insert con el atributo src. Sin embargo, este debe ser definido para los recurso del template. Vea también register_resource(), unregister_resource(). Plugin resource (recurso) query("select tpl_source from my_table where tpl_name='$tpl_name'"); if ($sql->num_rows) { $tpl_source = $sql->record['tpl_source']; return true; } else { return false; } } function smarty_resource_db_timestamp($tpl_name, &$tpl_timestamp, &$smarty) { // do database call here to populate $tpl_timestamp. $sql = new SQL; $sql->query("select tpl_timestamp from my_table where tpl_name='$tpl_name'"); if ($sql->num_rows) { $tpl_timestamp = $sql->record['tpl_timestamp']; return true; } else { return false; } } function smarty_resource_db_secure($tpl_name, &$smarty) { // assume all templates are secure return true; } function smarty_resource_db_trusted($tpl_name, &$smarty) { // not used for templates } ?> ]]>