Project

General

Profile

1 1420 Luisehahne
<?php
2
/**
3 1777 Luisehahne
*
4
* @category        frontend
5
* @package         account
6
* @author          WebsiteBaker Project
7
* @copyright       2009-2012, WebsiteBaker Org. e.V.
8 1792 Luisehahne
* @link	           http://www.websitebaker2.org/
9 1777 Luisehahne
* @license         http://www.gnu.org/licenses/gpl.html
10
* @platform        WebsiteBaker 2.8.x
11
* @requirements    PHP 5.2.2 and higher
12
* @version         $Id$
13
* @filesource		$HeadURL$
14
* @lastmodified    $Date$
15
*
16
*/
17 1420 Luisehahne
18 1719 Luisehahne
/* -------------------------------------------------------- */
19
// Must include code to stop this file being accessed directly
20 1777 Luisehahne
if(!defined('WB_PATH')) {
21
require_once(dirname(dirname(__FILE__)).'/framework/globalExceptionHandler.php');
22
throw new IllegalFileException();
23 1719 Luisehahne
}
24
/* -------------------------------------------------------- */
25 1420 Luisehahne
26 1777 Luisehahne
if($wb->is_authenticated() === false) {
27 1508 Luisehahne
// User needs to login first
28 1792 Luisehahne
    header("Location: ".WB_URL."/account/login.php?redirect=".$wb->link);
29
    exit(0);
30 1777 Luisehahne
}
31 1420 Luisehahne
32 1792 Luisehahne
/**
33
 *
34
 */
35
$sUserLanguage = LANGUAGE;
36
// Check existing language
37
	$sql  = 'SELECT `language` ';
38
	$sql .= 'FROM `'.TABLE_PREFIX.'users` ';
39
	$sql .= 'WHERE `user_id` = '.$wb->get_user_id();
40
    if ($sUserLanguage = $database->get_one($sql)) {
41
		$_SESSION['LANGUAGE'] = $sUserLanguage;
42
    }
43
44
$sDefaultLanguage = DEFAULT_LANGUAGE;
45
//$sLang = $wb->get_session('LANGUAGE');
46
$sLanguage = LANGUAGE.'.php';
47
48
$LanguageDir = WB_PATH .'/account/languages/';
49
50
$sLanguageFile = ( file_exists($LanguageDir.$sUserLanguage.'.php') ? $LanguageDir.$sUserLanguage.'.php' : $LanguageDir.$sLanguage);
51
$sLanguageFile = ( is_readable($sLanguageFile) ?  $sLanguageFile :  $LanguageDir.$sDefaultLanguage.'.php'   );
52 1508 Luisehahne
// load module default language file (EN)
53 1792 Luisehahne
require($sLanguageFile);
54
55 1845 Luisehahne
if(!function_exists('utf8_check')) { require(WB_PATH.'/framework/functions-utf8.php'); }
56 1792 Luisehahne
57
$sIncludeHeadLinkCss = '';
58
if( is_readable(WB_PATH .'/account/frontend.css')) {
59
	$sIncludeHeadLinkCss .= '<link href="'.WB_URL.'/account/frontend.css"';
60
	$sIncludeHeadLinkCss .= ' rel="stylesheet" type="text/css" media="screen" />'."\n";
61 1777 Luisehahne
}
62 1773 Luisehahne
63 1777 Luisehahne
$user_time = true;
64
require(ADMIN_PATH.'/interface/timezones.php');
65
require(ADMIN_PATH.'/interface/date_formats.php');
66
require(ADMIN_PATH.'/interface/time_formats.php');
67
$error = array();
68
$success = array();
69 1792 Luisehahne
70 1777 Luisehahne
$template = new Template(WB_PATH .'/account/htt','keep');
71 1420 Luisehahne
72 1792 Luisehahne
// show template
73
$template->set_file('page', 'preferences.htt');
74
$template->set_block('page', 'main_block', 'main');
75
76
/**
77
 *
78
 */
79 1777 Luisehahne
switch($wb->get_post('action')):
80 1792 Luisehahne
    case 'details':
81
        require_once(WB_PATH .'/account/details.php');
82
        break;
83
    case 'email':
84
        require_once(WB_PATH .'/account/email.php');
85
        break;
86
    case 'password':
87
        require_once(WB_PATH .'/account/password.php');
88
        break;
89
    default:
90 1777 Luisehahne
// do nothing
91
endswitch; // switch
92 1792 Luisehahne
// require(dirname(__FILE__).'/save_preferences.php');
93
// get existing values from database
94
$sql  = "SELECT `display_name`,`email`,`language`,`timezone`,`date_format`,`time_format` ";
95
$sql .= "FROM `".TABLE_PREFIX."users` ";
96
$sql .= "WHERE `user_id` = '".$wb->get_user_id()."'";
97 1420 Luisehahne
98 1792 Luisehahne
if($rowset = $database->query($sql)) {
99
    $row = $rowset->fetchRow();
100
    $_SESSION['LANGUAGE'] = $row['language'];
101
    $_SESSION['EMAIL'] = $row['email'];
102
    $_SESSION['DISPLAY_NAME'] = $row['display_name'];
103
    $_SESSION['TIMEZONE'] = $row['timezone'];
104
    $_SESSION['DATE_FORMAT'] = $row['date_format'];
105
    $_SESSION['TIME_FORMAT'] = $row['time_format'];
106
}
107 1777 Luisehahne
if($database->is_error()) $error[] = $database->get_error();
108 1508 Luisehahne
// insert values into form
109 1777 Luisehahne
$template->set_var('DISPLAY_NAME', $row['display_name']);
110
$template->set_var('EMAIL', $row['email']);
111
$template->set_var('ACTION_URL', WB_URL.'/account/preferences.php');
112 1508 Luisehahne
113 1792 Luisehahne
$_SESSION['HTTP_REFERER'] =( ($_SESSION['LANGUAGE'] != LANGUAGE ) ? WB_URL.'?lang='.$_SESSION['LANGUAGE'] : $_SESSION['HTTP_REFERER']);
114
$template->set_block('main_block', 'show_detail_send_block', 'show_detail_send');
115
$template->set_block('main_block', 'show_email_send_block', 'show_email_send');
116
$template->set_block('main_block', 'show_password_send_block', 'show_password_send');
117
118
if(($sUserLanguage != LANGUAGE) ) {
119
    $template->parse('show_detail_send', '');
120
    $template->parse('show_email_send', '');
121
    $template->parse('show_password_send', '');
122
} else {
123
    $template->parse('show_detail_send', 'show_detail_send_block');
124
    $template->parse('show_email_send', 'show_email_send_block');
125
    $template->parse('show_password_send', 'show_password_send_block');
126
}
127
128 1845 Luisehahne
// Insert language text and messages visibilty="hidden"
129 1792 Luisehahne
$template->set_var(array(
130
    'HTTP_REFERER' => ( $wb->get_session('HTTP_REFERER')!='' ? $_SESSION['HTTP_REFERER'] : WB_URL),
131
    'CSS_BLOCK'	=> $sIncludeHeadLinkCss,
132
    'TEXT_SAVE'	=> $TEXT['SAVE'],
133
    'TEXT_RESET' => $TEXT['RESET'],
134
    'TEXT_CANCEL' => ($sUserLanguage!=LANGUAGE) ? $MOD_PREFERENCE['SAVE_LANGUAGE']:$TEXT['CANCEL'],
135 1845 Luisehahne
    'MOD_PREFERENCE_SET_PREFERENCES_LANGUAGE' => ($sUserLanguage!=LANGUAGE) ? $MOD_PREFERENCE['SET_PREFERENCES_LANGUAGE']:'',
136
    'DISPLAY_PREFERENCES_LANGUAGE' => ($sUserLanguage!=LANGUAGE) ? '':'display:none',
137
	'TEXT_DISPLAY_NAME'	=> $TEXT['DISPLAY_NAME'],
138 1792 Luisehahne
    'TEXT_EMAIL' => $TEXT['EMAIL'],
139
    'TEXT_LANGUAGE' => $TEXT['LANGUAGE'],
140
    'TEXT_TIMEZONE' => $TEXT['TIMEZONE'],
141
    'TEXT_DATE_FORMAT' => $TEXT['DATE_FORMAT'],
142
    'TEXT_TIME_FORMAT' => $TEXT['TIME_FORMAT'],
143
    'TEXT_CURRENT_PASSWORD' => $TEXT['CURRENT_PASSWORD'],
144
    'TEXT_NEW_PASSWORD' => $TEXT['NEW_PASSWORD'],
145
    'TEXT_RETYPE_NEW_PASSWORD' => $TEXT['RETYPE_NEW_PASSWORD']
146
    )
147
);
148
149
$aLangAddons = array();
150
$aLangBrowser = array();
151
152
// read available languages from table addons
153 1777 Luisehahne
$sql  = 'SELECT * FROM `'.TABLE_PREFIX.'addons` ';
154
$sql .= 'WHERE `type` = \'language\' ORDER BY `directory`';
155 1792 Luisehahne
if( $oLang = $database->query($sql) )
156 1777 Luisehahne
{
157 1792 Luisehahne
    while( $aLang = $oLang->fetchRow(MYSQL_ASSOC) )
158 1777 Luisehahne
    {
159 1792 Luisehahne
        $aLangAddons[$aLang['directory']] = $aLang['name'];
160 1777 Luisehahne
    }
161
}
162 1792 Luisehahne
163
// default, if no information from client available
164
$sAutoLanguage = DEFAULT_LANGUAGE;
165
// detect client language
166
//if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
167
//	if(preg_match('/([a-z]{2})(?:-[a-z]{2})*/i', strtolower($_SERVER['HTTP_ACCEPT_LANGUAGE']), $matches)) {
168
//		$sAutoLanguage = strtoupper($matches[1]);
169
//	}
170
//}
171
172
//$sAutoLanguage = 'FR';
173
$aLangUsed = array_flip(explode(',',$wb->GetLanguagesInUsed()));
174
$aLangUsed = array_intersect_key($aLangAddons, $aLangUsed);
175
//$sAutoLanguage = array_key_exists($sAutoLanguage,$aLangUsed) ? $sAutoLanguage : DEFAULT_LANGUAGE;
176
177
// read available languages from table addons and assign it to the template
178
$template->set_block('main_block', 'language_list_block', 'language_list');
179
foreach( $aLangUsed as $sDirectory => $sName  )
180
{
181
    $langIcons = ( empty($sDirectory) ? 'none' : strtolower($sDirectory));
182
183
    $template->set_var('CODE',        $sDirectory);
184
    $template->set_var('NAME',        $sName);
185
    $template->set_var('FLAG',        THEME_URL.'/images/flags/'.$langIcons);
186
    $template->set_var('SELECTED',    ( $_SESSION['LANGUAGE'] == $sDirectory ? ' selected="selected"' : '') );
187
188
    $template->parse('language_list', 'language_list_block', true);
189
}
190
191 1508 Luisehahne
// Insert default timezone values
192 1777 Luisehahne
$template->set_block('main_block', 'timezone_list_block', 'timezone_list');
193
foreach($TIMEZONES AS $hour_offset => $title) {
194
    $template->set_var('VALUE', $hour_offset);
195
    $template->set_var('NAME', $title);
196
    if($wb->get_timezone() == $hour_offset*3600) {
197
        $template->set_var('SELECTED', 'selected="selected"');
198
    } else {
199
        $template->set_var('SELECTED', '');
200
    }
201
    $template->parse('timezone_list', 'timezone_list_block', true);
202
}
203 1420 Luisehahne
204 1508 Luisehahne
// Insert date format list
205 1777 Luisehahne
$template->set_block('main_block', 'date_format_list_block', 'date_format_list');
206
foreach($DATE_FORMATS AS $format => $title)
207
{
208
    $format = str_replace('|', ' ', $format); // Add's white-spaces (not able to be stored in array key)
209
    if($format != 'system_default') {
210
        $template->set_var('VALUE', $format);
211
    } else {
212
        $template->set_var('VALUE', '');
213
    }
214
    $template->set_var('NAME', $title);
215
    if($wb->get_session('DATE_FORMAT') == $format AND !isset($_SESSION['USE_DEFAULT_DATE_FORMAT'])) {
216
        $template->set_var('SELECTED', 'selected="selected"');
217
    } elseif($format == 'system_default' AND isset($_SESSION['USE_DEFAULT_DATE_FORMAT'])) {
218
        $template->set_var('SELECTED', 'selected="selected"');
219
    } else {
220
        $template->set_var('SELECTED', '');
221
    }
222
    $template->parse('date_format_list', 'date_format_list_block', true);
223
}
224 1420 Luisehahne
225 1508 Luisehahne
// Insert time format list
226 1777 Luisehahne
$template->set_block('main_block', 'time_format_list_block', 'time_format_list');
227
foreach($TIME_FORMATS AS $format => $title)
228
{
229
    $format = str_replace('|', ' ', $format); // Add's white-spaces (not able to be stored in array key)
230
    if($format != 'system_default') {
231
        $template->set_var('VALUE', $format);
232
    } else {
233
        $template->set_var('VALUE', '');
234
    }
235
    $template->set_var('NAME', $title);
236
    if($wb->get_session('TIME_FORMAT') == $format AND !isset($_SESSION['USE_DEFAULT_TIME_FORMAT'])) {
237
        $template->set_var('SELECTED', 'selected="selected"');
238
    } elseif($format == 'system_default' AND isset($_SESSION['USE_DEFAULT_TIME_FORMAT'])) {
239
        $template->set_var('SELECTED', 'selected="selected"');
240
    } else {
241
    $template->set_var('SELECTED', '');
242
    }
243
    $template->parse('time_format_list', 'time_format_list_block', true);
244
}
245 1508 Luisehahne
// Insert language headings
246 1777 Luisehahne
$template->set_var(array(
247 1792 Luisehahne
    'HEADING_MY_SETTINGS' => $HEADING['MY_SETTINGS'],
248
    'HEADING_MY_EMAIL'    => $HEADING['MY_EMAIL'],
249
    'HEADING_MY_PASSWORD' => $HEADING['MY_PASSWORD']
250 1777 Luisehahne
    )
251
);
252 1420 Luisehahne
253 1508 Luisehahne
// Insert module releated language text and messages
254 1777 Luisehahne
$template->set_var(array(
255
    'MOD_PREFERENCE_PLEASE_SELECT'  => $MOD_PREFERENCE['PLEASE_SELECT'],
256
    'MOD_PREFERENCE_SAVE_SETTINGS'  => $MOD_PREFERENCE['SAVE_SETTINGS'],
257
    'MOD_PREFERENCE_SAVE_EMAIL'     => $MOD_PREFERENCE['SAVE_EMAIL'],
258
    'MOD_PREFERENCE_SAVE_PASSWORD'  => $MOD_PREFERENCE['SAVE_PASSWORD'],
259
    )
260
);
261 1508 Luisehahne
// Insert error and/or success messages
262 1777 Luisehahne
$template->set_block('main_block', 'error_block', 'error_list');
263
$template->set_var('ERROR_VALUE', '');
264
if(sizeof($error)>0){
265
    $template->set_var('ERROR_VALUE', $wb->format_message(implode('<br />',$error),'error'));
266
    $template->parse('error_list', 'error_block', true);
267
} else {
268
    $template->parse('error_list', '');
269
}
270 1420 Luisehahne
271 1777 Luisehahne
$template->set_block('main_block', 'success_block', 'success_list');
272
$template->set_var('SUCCESS_VALUE', '');
273
if(sizeof($success)!=0){
274
    $template->set_var('SUCCESS_VALUE', $wb->format_message(implode('<br />',$success),'ok'));
275
    $template->parse('success_list', 'success_block', true);
276
} else {
277
    $template->parse('success_list', '');
278
}
279 1508 Luisehahne
// Parse template for preferences form
280 1777 Luisehahne
$template->parse('main', 'main_block', false);
281
$template->pparse('output', 'page');