function StoreFile($_browserId, $_partner, $_fullname) { $filename = namebase($_FILES['userfile']['name']); if (!isValidUploadFile($filename)) { return false; } $fileid = md5($filename . $this->UserId . $_browserId); $fileurid = EX_FILE_UPLOAD_REQUEST . "_" . $fileid; $filemask = $this->UserId . "_" . $fileid; $request = new FileUploadRequest($fileurid, $_partner); $request->Load(); if ($request->Permission == PERMISSION_FULL) { if (move_uploaded_file($_FILES["userfile"]["tmp_name"], PATH_UPLOADS . $request->FileMask)) { createFileBaseFolders($_partner, false); processResource($_partner, $this->UserId, $_fullname, 0, $_fullname, 0, 5, 3); processResource($_partner, $fileid, $filemask, 4, $_FILES["userfile"]["name"], 0, $this->UserId, 4, $_FILES["userfile"]["size"]); $request->Download = true; $request->Save(); return true; } else { $request->Error = true; $request->Save(); } } return false; }
function receiveFile($id = FILE_ACTION_NONE) { global $RESPONSE, $INTERNAL; if (isset($_POST[POST_INTERN_FILE_TYPE]) && $_POST[POST_INTERN_FILE_TYPE] == FILE_TYPE_USERFILE) { $fid = md5($_FILES["file"]["name"] . CALLER_SYSTEM_ID . time()); $filemask = CALLER_SYSTEM_ID . "_" . $fid; if (empty($_SERVER["HTTP_QRD_PARENT_ID"])) { createFileBaseFolders(CALLER_SYSTEM_ID, true); processResource(CALLER_SYSTEM_ID, CALLER_SYSTEM_ID, $INTERNAL[CALLER_SYSTEM_ID]->Fullname, 0, $INTERNAL[CALLER_SYSTEM_ID]->Fullname, 0, 4, 3); $parentId = CALLER_SYSTEM_ID; $rank = 4; } else { $parentId = $_SERVER["HTTP_QRD_PARENT_ID"]; $rank = $_SERVER["HTTP_QRD_RANK"]; } processResource(CALLER_SYSTEM_ID, $fid, $filemask, 3, $_FILES["file"]["name"], 0, $parentId, $rank, $_FILES["file"]["size"]); if (@move_uploaded_file($_FILES["file"]["tmp_name"], PATH_UPLOADS . $filemask)) { $id = FILE_ACTION_SUCCEEDED; } else { $id = FILE_ACTION_ERROR; } } $RESPONSE->SetStandardResponse($id, base64_encode($fid)); }
function up_3183_3184($_prefix, $_link) { global $INTERNAL, $GROUPS; $result = @mysql_query("ALTER TABLE `" . @mysql_real_escape_string($_prefix) . "info` ADD `chat_id` INT NOT NULL DEFAULT '11700'", $_link); if (!$result && mysql_errno() != 1060) { return mysql_errno() . ": " . mysql_error(); } $result = @mysql_query("ALTER TABLE `" . @mysql_real_escape_string($_prefix) . "info` ADD `ticket_id` INT NOT NULL DEFAULT '11700'", $_link); if (!$result && mysql_errno() != 1060) { return mysql_errno() . ": " . mysql_error(); } $result = @mysql_query("ALTER TABLE `" . @mysql_real_escape_string($_prefix) . "chats` ADD `transcript_sent` tinyint(1) unsigned NOT NULL default '1'", $_link); if (!$result && mysql_errno() != 1060) { return mysql_errno() . ": " . mysql_error(); } $result = @mysql_query("ALTER TABLE `" . @mysql_real_escape_string($_prefix) . "res` CHANGE `html` `value` longtext character set utf8 collate utf8_bin NOT NULL", $_link); if (!$result && mysql_errno() != 1054) { return mysql_errno() . ": " . mysql_error(); } $result = @mysql_query("ALTER TABLE `" . @mysql_real_escape_string($_prefix) . "res` ADD `size` bigint(20) unsigned NOT NULL default '0'", $_link); if (!$result && mysql_errno() != 1060) { return mysql_errno() . ": " . mysql_error(); } $dirs = array(PATH_UPLOADS_INTERNAL, PATH_UPLOADS_EXTERNAL); $baseFolderInternal = $baseFolderExternal = false; foreach ($dirs as $tdir) { $subdirs = getDirectory($tdir, false, true); foreach ($subdirs as $dir) { if (@is_dir($tdir . $dir . "/")) { if ($tdir == PATH_UPLOADS_INTERNAL) { $owner = getInternalSystemIdByUserId($dir); } else { $owner = CALLER_SYSTEM_ID; } if (!isset($INTERNAL[$owner])) { continue; } $files = getDirectory($tdir . $dir . "/", false, true); foreach ($files as $file) { if ($file != FILE_INDEX && $file != FILE_INDEX_OLD) { if ($tdir == PATH_UPLOADS_INTERNAL) { $parentId = $owner; $type = 3; if (!$baseFolderInternal) { createFileBaseFolders($owner, true); $baseFolderInternal = true; } processResource($owner, $owner, $INTERNAL[$owner]->Fullname, 0, $INTERNAL[$owner]->Fullname, 0, 4, 3); } else { $parentId = 5; $owner = CALLER_SYSTEM_ID; $type = 4; if (!$baseFolderExternal) { createFileBaseFolders($owner, false); $baseFolderExternal = true; } } $cfile = $tdir != PATH_UPLOADS_INTERNAL ? base64_decode($file) : $file; $size = filesize($tdir . $dir . "/" . $file); $fid = md5($file . $owner . $size); $filename = $owner . "_" . $fid; copy($tdir . $dir . "/" . $file, PATH_UPLOADS . $filename); processResource($owner, $fid, $filename, $type, $cfile, 0, $parentId, 4, $size); } } } } } $sql = "CREATE TABLE `" . @mysql_real_escape_string($_prefix) . "predefined` (`id` int(11) unsigned NOT NULL,`internal_id` varchar(32) character set utf8 collate utf8_bin NOT NULL,`group_id` varchar(32) character set utf8 collate utf8_bin NOT NULL,`lang_iso` varchar(2) character set utf8 collate utf8_bin NOT NULL,`invitation` mediumtext character set utf8 collate utf8_bin NOT NULL,`welcome` mediumtext character set utf8 collate utf8_bin NOT NULL,`website_push` mediumtext character set utf8 collate utf8_bin NOT NULL,`browser_ident` tinyint(1) unsigned NOT NULL default '0',`is_default` tinyint(1) unsigned NOT NULL default '0', `auto_welcome` tinyint(1) unsigned NOT NULL default '0',PRIMARY KEY (`id`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;"; $result = mysql_query($sql, $_link); if (!$result && mysql_errno() != 1050) { return mysql_errno() . ": " . mysql_error(); } else { if ($result) { $counter = 0; foreach ($GROUPS as $gid => $group) { @mysql_query("INSERT INTO `" . @mysql_real_escape_string($_prefix) . "predefined` (`id` ,`internal_id`, `group_id` ,`lang_iso` ,`invitation` ,`welcome` ,`website_push` ,`browser_ident` ,`is_default` ,`auto_welcome`) VALUES ('" . @mysql_real_escape_string($counter++) . "', '', '" . @mysql_real_escape_string($gid) . "', 'EN', 'Hello, my name is %name%. Do you need help? Start Live-Chat now to get assistance.', 'Hello %external_name%, my name is %name%, how may I help you?', 'Website Operator %name% would like to redirect you to this URL:\r\n\r\n%url%', '1', '1', '1');", $_link); @mysql_query("INSERT INTO `" . @mysql_real_escape_string($_prefix) . "predefined` (`id` ,`internal_id`, `group_id` ,`lang_iso` ,`invitation` ,`welcome` ,`website_push` ,`browser_ident` ,`is_default` ,`auto_welcome`) VALUES ('" . @mysql_real_escape_string($counter++) . "', '', '" . @mysql_real_escape_string($gid) . "', 'DE', '" . utf8_encode("Guten Tag, meine Name ist %name%. Benötigen Sie Hilfe? Gerne berate ich Sie in einem Live Chat") . "', 'Guten Tag %external_name%, mein Name ist %name% wie kann ich Ihnen helfen?', '" . utf8_encode("Ein Betreuer dieser Webseite (%name%) möchte Sie auf einen anderen Bereich weiterleiten:\\r\\n\\r\\n%url%") . "', '1', '0', '1');", $_link); } } } $sql = "CREATE TABLE `" . @mysql_real_escape_string($_prefix) . "rooms` (`id` int(11) NOT NULL,`time` int(11) NOT NULL,`last_active` int(11) NOT NULL,`status` tinyint(1) NOT NULL default '0',`target_group` varchar(64) NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;"; $result = mysql_query($sql, $_link); if (!$result && mysql_errno() != 1050) { return mysql_errno() . ": " . mysql_error(); } $sql = "CREATE TABLE `" . @mysql_real_escape_string($_prefix) . "posts` (`id` varchar(32) character set utf8 collate utf8_bin NOT NULL,`time` int(10) unsigned NOT NULL default '0',`micro` int(10) unsigned NOT NULL default '0',`sender` varchar(32) character set utf8 collate utf8_bin NOT NULL,`receiver` varchar(32) character set utf8 collate utf8_bin NOT NULL,`receiver_group` varchar(32) character set utf8 collate utf8_bin NOT NULL,`text` mediumtext character set utf8 collate utf8_bin NOT NULL,`received` tinyint(1) unsigned NOT NULL default '0',`persistent` tinyint(1) unsigned NOT NULL default '0', PRIMARY KEY (`id`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;"; $result = mysql_query($sql, $_link); if (!$result && mysql_errno() != 1050) { return mysql_errno() . ": " . mysql_error(); } $sql = "CREATE TABLE `" . @mysql_real_escape_string($_prefix) . "tickets` (`id` varchar(32) character set utf8 collate utf8_bin NOT NULL,`user_id` varchar(32) character set utf8 collate utf8_bin NOT NULL,`target_group_id` varchar(32) character set utf8 collate utf8_bin NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;"; $result = mysql_query($sql, $_link); if (!$result && mysql_errno() != 1050) { return mysql_errno() . ": " . mysql_error(); } $sql = "CREATE TABLE `" . @mysql_real_escape_string($_prefix) . "ticket_editors` (`ticket_id` int(10) unsigned NOT NULL,`internal_fullname` varchar(32) character set utf8 collate utf8_bin NOT NULL,`status` tinyint(1) unsigned NOT NULL default '1',`time` int(10) unsigned NOT NULL,PRIMARY KEY (`ticket_id`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;"; $result = mysql_query($sql, $_link); if (!$result && mysql_errno() != 1050) { return mysql_errno() . ": " . mysql_error(); } $sql = "CREATE TABLE `" . @mysql_real_escape_string($_prefix) . "ticket_messages` (`id` int(11) unsigned NOT NULL auto_increment,`time` int(11) unsigned NOT NULL,`ticket_id` varchar(32) character set utf8 collate utf8_bin NOT NULL,`text` mediumtext character set utf8 collate utf8_bin NOT NULL,`fullname` varchar(32) character set utf8 collate utf8_bin NOT NULL,`email` varchar(50) character set utf8 collate utf8_bin NOT NULL,`company` varchar(50) character set utf8 collate utf8_bin NOT NULL,`ip` varchar(15) character set utf8 collate utf8_bin NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin AUTO_INCREMENT=1;"; $result = mysql_query($sql, $_link); if (!$result && mysql_errno() != 1050) { return mysql_errno() . ": " . mysql_error(); } $sql = "CREATE TABLE `" . @mysql_real_escape_string($_prefix) . "ratings` (`id` varchar(32) character set utf8 collate utf8_bin NOT NULL, `time` int(11) unsigned NOT NULL, `user_id` varchar(32) character set utf8 collate utf8_bin NOT NULL, `internal_id` varchar(32) character set utf8 collate utf8_bin NOT NULL, `fullname` varchar(32) character set utf8 collate utf8_bin NOT NULL, `email` varchar(50) character set utf8 collate utf8_bin NOT NULL, `company` varchar(50) character set utf8 collate utf8_bin NOT NULL, `qualification` tinyint(1) unsigned NOT NULL, `politeness` tinyint(1) unsigned NOT NULL, `comment` varchar(400) character set utf8 collate utf8_bin NOT NULL, `ip` varchar(15) character set utf8 collate utf8_bin NOT NULL, PRIMARY KEY (`id`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_bin;"; $result = mysql_query($sql, $_link); if (!$result && mysql_errno() != 1050) { return mysql_errno() . ": " . mysql_error(); } return TRUE; }