init
[garradin.git] / include / libs / template_lite / plugins / function.db_function_call.php
1 <?php
2 /*
3 * Template Lite plugin
4 * -------------------------------------------------------------
5 * Type: function
6 * Name: db_function_call
7 * Purpose: Interface with ADOdb Lite to query database.
8 *
9 * db_object = Database object
10 * db_function = Database function to execute
11 * db_query = query string to pass to the database
12 * db_assign = variable name to assign result data
13 * db_errornumber_assign = variable name to assign the database error number
14 * db_error_assign = the variable name to assign the database error message
15 * db_EOF_assign = the variable name to assign the database end of file flag
16 * -------------------------------------------------------------
17 */
18 function tpl_function_db_function_call($params, &$template_object)
19 {
20 if (empty($params['db_object']))
21 {
22 throw new Template_Exception("db_function_call: missing db_object parameter", $template_object);
23 return;
24 }
25
26 if (!is_object($params['db_object']))
27 {
28 throw new Template_Exception("db_function_call: db_object isn't an object", $template_object);
29 return;
30 }
31
32 $db = $params['db_object'];
33
34 if (empty($params['db_assign']))
35 {
36 throw new Template_Exception("db_function_call: missing db_assign parameter", $template_object);
37 return;
38 }
39
40 if (empty($params['db_function']))
41 {
42 throw new Template_Exception("db_function_call: missing db_function parameter", $template_object);
43 return;
44 }
45
46 $db_function = $params['db_function'];
47
48 $result = $db->$db_function($params['db_query']);
49
50 $template_object->assign($params['db_assign'], $result);
51
52 if (!empty($params['db_errornumber_assign']))
53 {
54 $template_object->assign($params['db_errornumber_assign'], $db->ErrorNo());
55 }
56
57 if (!empty($params['db_error_assign']))
58 {
59 $template_object->assign($params['db_error_assign'], $db->ErrorMsg());
60 }
61
62 if (!empty($params['db_EOF_assign']))
63 {
64 $template_object->assign($params['db_EOF_assign'], $result->EOF);
65 }
66 }
67 ?>