function HookUser_preferencesuser_preferencesSaveadditionaluserpreferences() { global $user_preferences_change_username, $user_preferences_change_email, $user_preferences_change_name, $userref, $useremail, $username, $userfullname, $lang; $newUsername = trim(safe_file_name(getvalescaped('username', $username))); $newEmail = getvalescaped('email', $userfullname); $newFullname = getvalescaped('fullname', $userfullname); # Check if a user with that username already exists if ($user_preferences_change_username && $username != $newUsername) { $existing = sql_query('select ref from user where username=\'' . escape_check($newUsername) . '\''); if (!empty($existing)) { $GLOBALS['errorUsername'] = $lang['useralreadyexists']; return false; } } # Check if a user with that email already exists if ($user_preferences_change_email && $useremail != $newEmail) { $existing = sql_query('select ref from user where email=\'' . escape_check($newEmail) . '\''); if (!empty($existing)) { $GLOBALS['errorEmail'] = $lang['useremailalreadyexists']; return false; } } # Store changed values in DB, and update the global variables as header.php is included next if ($user_preferences_change_username && $username != $newUsername) { sql_query("update user set username='******' where ref='" . $userref . "'"); $username = $newUsername; } if ($user_preferences_change_email && $useremail != $newEmail) { sql_query("update user set email='" . escape_check($newEmail) . "' where ref='" . $userref . "'"); $useremail = $newEmail; } if ($user_preferences_change_name && $userfullname != $newFullname) { sql_query("update user set fullname='" . escape_check($newFullname) . "' where ref='" . $userref . "'"); $userfullname = $newFullname; } return getvalescaped('currentpassword', '') == '' || getvalescaped('password', '') == '' && getvalescaped('password2', '') == ''; }
function make_username($name) { # Generates a unique username for the given name # First compress the various name parts $s = trim_array(explode(" ", $name)); $name = $s[count($s) - 1]; for ($n = count($s) - 2; $n >= 0; $n--) { $name = substr($s[$n], 0, 1) . $name; } $name = safe_file_name(strtolower($name)); # Create fullname usernames: global $user_account_fullname_create; if ($user_account_fullname_create) { $name = ''; foreach ($s as $name_part) { $name .= '_' . $name_part; } $name = substr($name, 1); $name = safe_file_name($name); } # Check for uniqueness... append an ever-increasing number until unique. $unique = false; $num = -1; while (!$unique) { $num++; $c = sql_value("select count(*) value from user where username='******'", 0); $unique = $c == 0; } return $name . ($num == 0 ? "" : $num); }
# Archive created, schedule the command file for deletion. if (!$use_zip_extension) { $deletion_array[] = $cmdfile; } # Remove temporary files. foreach ($deletion_array as $tmpfile) { delete_exif_tmpfile($tmpfile); } # Get the file size of the archive. $filesize = @filesize_unlimited($zipfile); if ($use_collection_name_in_zip_name) { # Use collection name (if configured) if ($archiver) { $filename = $lang["collectionidprefix"] . $collection . "-" . safe_file_name(i18n_get_collection_name($collectiondata)) . "-" . $size . "." . $collection_download_settings[$settings_id]["extension"]; } else { $filename = $lang["collectionidprefix"] . $collection . "-" . safe_file_name(i18n_get_collection_name($collectiondata)) . "-" . $size . ".zip"; } } else { # Do not include the collection name in the filename (default) if ($archiver) { $filename = $lang["collectionidprefix"] . $collection . "-" . $size . "." . $collection_download_settings[$settings_id]["extension"]; } else { $filename = $lang["collectionidprefix"] . $collection . "-" . $size . ".zip"; } } header("Content-Disposition: attachment; filename=" . $filename); if ($archiver) { header("Content-Type: " . $collection_download_settings[$settings_id]["mime"]); } else { header("Content-Type: application/zip"); }
function register_plugin($plugin) { global $plugins, $language, $pagename, $lang, $applicationname; # Include language file $langpath = dirname(__FILE__) . "/../plugins/" . $plugin . "/languages/"; if (file_exists($langpath . "en.php")) { include $langpath . "en.php"; } if ($language != "en") { if (substr($language, 2, 1) == '-' && substr($language, 0, 2) != 'en') { @(include $langpath . safe_file_name(substr($language, 0, 2)) . ".php"); } @(include $langpath . safe_file_name($language) . ".php"); } # Also include plugin hook file for this page. if ($pagename == "collections_frameless_loader") { $pagename = "collections"; } $hookpath = dirname(__FILE__) . "/../plugins/" . $plugin . "/hooks/" . $pagename . ".php"; if (file_exists($hookpath)) { include $hookpath; } # Support an 'all' hook $hookpath = dirname(__FILE__) . "/../plugins/" . $plugin . "/hooks/all.php"; if (file_exists($hookpath)) { include $hookpath; } return true; }
function append_to_uploads($entry, $tmp_file) { // add system information $entry['uploaded'] = time(); $entry['request'] = $_SERVER; $entry['original_name'] = $entry['name']; $entry['session'] = get_session_id(); $safe_name = safe_file_name($entry['name']); $entry['name'] = $safe_name; $n = 1; while (file_exists($entry['name'])) { // make filename unique $entry['name'] = $n . '_' . $safe_name; $n++; } rename($tmp_file, get_storage_folder() . '/' . $entry['name']); if (lock(get_storage_folder() . '/.lock', true)) { $setup = get_setup(); $setup['uploads'][md5(microtime())] = $entry; save_setup($setup); lock(get_storage_folder() . '/.lock', false); } }
if ($language=="us") {$language="en-US";} # Make sure the provided language is a valid language if (!array_key_exists($language,$languages)) { if (isset($defaultlanguage)) $language=$defaultlanguage; else $language='en'; } # Always include the english pack (in case items have not yet been translated) include dirname(__FILE__)."/../languages/en.php"; if ($language!="en") { include dirname(__FILE__)."/../languages/" . safe_file_name($language) . ".php"; } # Register all plugins for ($n=0;$n<count($plugins);$n++) { register_plugin($plugins[$n]); } # Set character set. if (($pagename!="download") && ($pagename!="graph")) {header("Content-Type: text/html; charset=UTF-8");} // Make sure we're using UTF-8. #------------------------------------------------------ # Pre-load all text for this page. $site_text=array();
/** * Sets the language to be used. * * @param string $defaultlanguage * @return array */ function set_language($defaultlanguage) { global $languages; global $storagedir, $applicationname, $homeanim_folder; # Used in the language files. $defaultlanguage = safe_file_name($defaultlanguage); if (file_exists("../languages/en.php")) { include "../languages/en.php"; } if ($defaultlanguage == '') { //See if we can auto-detect the most likely language. The user can override this. if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { $httplanguage = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if (array_key_exists($httplanguage[0], $languages)) { $defaultlanguage = $httplanguage[0]; } } } if ($defaultlanguage != 'en') { if (file_exists("../languages/" . $defaultlanguage . ".php")) { include "../languages/" . $defaultlanguage . ".php"; } } return $lang; }
function register_plugin_language($plugin) { global $plugins, $language, $pagename, $lang, $applicationname; # Include language file $langpath = dirname(__FILE__) . "/../plugins/" . $plugin . "/languages/"; if (file_exists($langpath . "en.php")) { include $langpath . "en.php"; } if ($language != "en") { if (substr($language, 2, 1) == '-' && substr($language, 0, 2) != 'en') { @(include $langpath . safe_file_name(substr($language, 0, 2)) . ".php"); } @(include $langpath . safe_file_name($language) . ".php"); } }
} } # Archive created, schedule the command file for deletion. $deletion_array[] = $cmdfile; # Remove temporary files. foreach ($deletion_array as $tmpfile) { delete_exif_tmpfile($tmpfile); } # Get the file size of the archive. $filesize = @filesize_unlimited(get_temp_dir() . "/" . $file); if ($use_collection_name_in_zip_name) { # Use collection name (if configured) if ($archiver) { $filename = $lang["collectionidprefix"] . $collection . "-" . safe_file_name(i18n_get_translated($collectiondata['name'])) . "-" . $size . "." . $collection_download_settings[$settings_id]["extension"]; } else { $filename = $lang["collectionidprefix"] . $collection . "-" . safe_file_name(i18n_get_translated($collectiondata['name'])) . "-" . $size . ".zip"; } } else { # Do not include the collection name in the filename (default) if ($archiver) { $filename = $lang["collectionidprefix"] . $collection . "-" . $size . "." . $collection_download_settings[$settings_id]["extension"]; } else { $filename = $lang["collectionidprefix"] . $collection . "-" . $size . ".zip"; } } header("Content-Disposition: attachment; filename=" . $filename); if ($archiver) { header("Content-Type: " . $collection_download_settings[$settings_id]["mime"]); } else { header("Content-Type: application/zip"); }
# Get the file size of the archive. $filesize = @filesize_unlimited($zipfile); if ($archiver) $suffix = '.' . $collection_download_settings[$settings_id]['extension']; else $suffix = '.zip'; $filename = hook('changecollectiondownloadname', null, array($collection, $size, $suffix)); if (empty($filename)) { if ($use_collection_name_in_zip_name) { # Use collection name (if configured) $filename = $lang["collectionidprefix"] . $collection . "-" . safe_file_name(i18n_get_collection_name($collectiondata)) . "-" . $size . $suffix; } else { # Do not include the collection name in the filename (default) $filename = $lang["collectionidprefix"] . $collection . "-" . $size . $suffix; } } header("Content-Disposition: attachment; filename=" . $filename); if ($archiver) {header("Content-Type: " . $collection_download_settings[$settings_id]["mime"]);} else { header("Content-Type: application/zip");} if ($use_zip_extension){header("Content-Transfer-Encoding: binary");} header("Content-Length: " . $filesize);