summaryrefslogtreecommitdiff
path: root/casts.php
blob: 2be86b4fc8213665579c2b6444131486f35e51e8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php

	/**
	 * Manage casts in a database
	 *
	 * $Id: casts.php,v 1.16 2007/09/25 16:08:05 ioguix Exp $
	 */

	// Include application functions
	include_once('./libraries/lib.inc.php');
	
	$action = (isset($_REQUEST['action'])) ? $_REQUEST['action'] : '';
	if (!isset($msg)) $msg = '';

	/**
	 * Show default list of casts in the database
	 */
	function doDefault($msg = '') {
		global $data, $misc, $database;
		global $lang;

		function renderCastContext($val) {
			global $lang;
			switch ($val) {
				case 'e': return $lang['strno'];
				case 'a': return $lang['strinassignment'];
				default: return $lang['stryes'];
			}
		}
		
		$misc->printTrail('database');
		$misc->printTabs('database','casts');
		$misc->printMsg($msg);
		
		$casts = $data->getCasts();

		$columns = array(
			'source_type' => array(
				'title' => $lang['strsourcetype'],
				'field' => field('castsource'),
			),
			'target_type' => array(
				'title' => $lang['strtargettype'],
				'field' => field('casttarget'),
			),
			'function' => array(
				'title' => $lang['strfunction'],
				'field' => field('castfunc'),
				'params'=> array('null' => $lang['strbinarycompat']),
			),
			'implicit' => array(
				'title' => $lang['strimplicit'],
				'field' => field('castcontext'),
				'type'  => 'callback',
				'params'=> array('function' => 'renderCastContext', 'align' => 'center'),
			),
			'comment' => array(
				'title' => $lang['strcomment'],
				'field' => field('castcomment'),
			),
		);

		$actions = array();
		
		$misc->printTable($casts, $columns, $actions, 'casts-casts', $lang['strnocasts']);
	}

	/**
	 * Generate XML for the browser tree.
	 */
	function doTree() {
		global $misc, $data;
		
		$casts = $data->getCasts();
		
		$proto = concat(field('castsource'), ' AS ', field('casttarget'));
		
		$attrs = array(
			'text'   => $proto,
			'icon'   => 'Cast'
		);
		
		$misc->printTree($casts, $attrs, 'casts');
		exit;
	}
	
	if ($action == 'tree') doTree();
	
	$misc->printHeader($lang['strcasts']);
	$misc->printBody();

	switch ($action) {
		case 'tree':
			doTree();
			break;
		default:
			doDefault();
			break;
	}	

	$misc->printFooter();

?>