本文整理汇总了PHP中Sys::alertAdmin方法的典型用法代码示例。如果您正苦于以下问题:PHP Sys::alertAdmin方法的具体用法?PHP Sys::alertAdmin怎么用?PHP Sys::alertAdmin使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Sys
的用法示例。
在下文中一共展示了Sys::alertAdmin方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: log
function log($priority, $title, $message, $alert = true)
{
global $cfg;
switch ($priority) {
//We are providing only 3 levels of logs. Windows style.
case LOG_EMERG:
case LOG_ALERT:
case LOG_CRIT:
case LOG_ERR:
$level = 1;
if ($alert) {
Sys::alertAdmin($title, $message);
}
break;
case LOG_WARN:
case LOG_WARNING:
//Warning...
$level = 2;
break;
case LOG_NOTICE:
case LOG_INFO:
case LOG_DEBUG:
default:
$level = 3;
//debug
}
//Save log based on system log level settings.
if ($cfg && $cfg->getLogLevel() >= $level) {
$loglevel = array(1 => 'Error', 'Warning', 'Debug');
$sql = 'INSERT INTO ' . SYSLOG_TABLE . ' SET created=NOW(),updated=NOW() ' . ',title=' . db_input($title) . ',log_type=' . db_input($loglevel[$level]) . ',log=' . db_input($message) . ',ip_address=' . db_input($_SERVER['REMOTE_ADDR']);
//echo $sql;
mysql_query($sql);
//don't use db_query to avoid possible loop.
}
}
示例2: create_by_staff
function create_by_staff($var, &$errors)
{
global $_FILES, $thisuser, $cfg;
//check if the staff is allowed to create tickets.
if (!$thisuser || !$thisuser->getId() || !$thisuser->isStaff() || !$thisuser->canCreateTickets()) {
$errors['err'] = 'Permission denied';
}
if (!$var['issue']) {
$errors['issue'] = 'Summary of the issue required';
}
if ($var['source'] && !in_array(strtolower($var['source']), array('email', 'phone', 'other'))) {
$errors['source'] = 'Invalid source - ' . Format::htmlchars($var['source']);
}
$var['emailId'] = 0;
//clean crap.
$var['message'] = 'Ticket created by staff';
if ($ticket = Ticket::create($var, $errors, 'staff', false, !$var['staffId'])) {
//Staff are alerted only IF the ticket is not being assigned.
//post issue as a response...
$msgId = $ticket->getLastMsgId();
$issue = $ticket->replaceTemplateVars($var['issue']);
if ($respId = $ticket->postResponse($msgId, $issue, 'none', null, false)) {
//Note that we're overwriting alerts.
//Mark the ticket unanswered - postResponse marks it answered which is not the desired state.
$ticket->markUnAnswered();
//Send Notice to user --- if requested AND enabled!!
if ($cfg->notifyONNewStaffTicket() && isset($var['alertuser'])) {
$dept = $ticket->getDept();
if (!$dept || !($tplId = $dept->getTemplateId())) {
$tplId = $cfg->getDefaultTemplateId();
}
$sql = 'SELECT ticket_notice_subj,ticket_notice_body FROM ' . EMAIL_TEMPLATE_TABLE . ' WHERE cfg_id=' . db_input($cfg->getId()) . ' AND tpl_id=' . db_input($tplId);
if (($resp = db_query($sql)) && db_num_rows($resp) && (list($subj, $body) = db_fetch_row($resp))) {
$body = $ticket->replaceTemplateVars($body);
$subj = $ticket->replaceTemplateVars($subj);
$body = str_replace('%message', $var['issue'], $body);
//Figure out the signature to use...if any.
switch (strtolower($var['signature'])) {
case 'mine':
$signature = $thisuser->getSignature();
break;
case 'dept':
$signature = $dept && $dept->isPublic() ? $dept->getSignature() : '';
//make sure it is public
break;
case 'none':
default:
$signature = '';
break;
}
$body = str_replace("%signature", $signature, $body);
//Email attachment when attached AND if emailed attachments are allowed!
$file = null;
$attachment = $_FILES['attachment'];
if ($attachment && is_file($attachment['tmp_name']) && $cfg->emailAttachments()) {
$file = array('file' => $attachment['tmp_name'], 'name' => $attachment['name'], 'type' => $attachment['type']);
}
if ($cfg->stripQuotedReply() && ($tag = trim($cfg->getReplySeparator()))) {
$body = "\n{$tag}\n\n" . $body;
}
if (!$dept || !($email = $dept->getEmail())) {
$email = $cfg->getDefaultEmail();
}
if ($email && $email->getId()) {
$email->send($ticket->getEmail(), $subj, $body, $file);
}
} else {
//We have a big problem...alert admin...
$msg = 'Problems fetching response template for ticket#' . $ticket->getId() . ' Possible config error - template #' . $tplId;
Sys::alertAdmin('System Error', $msg);
}
}
//Send send alert.
//Upload attachment if any...
if ($_FILES['attachment'] && $_FILES['attachment']['size']) {
$ticket->uploadAttachment($_FILES['attachment'], $respId, 'R');
}
} else {
//end post response
$errors['err'] = 'Internal error - message/response post error.';
}
//post create actions
if ($var['staffId']) {
//Assign ticket to staff if any. (internal note as message)
$ticket->assignStaff($var['staffId'], $var['note'], isset($var['alertstaff']));
} elseif ($var['note']) {
//Not assigned...save optional note if any
$ticket->postNote('New Ticket', $var['note'], false);
} else {
//Not assignment and no internal note - log activity
$ticket->logActivity('New Ticket by Staff', 'Ticket created by staff -' . $thisuser->getName());
}
} else {
$errors['err'] = $errors['err'] ? $errors['err'] : 'Unable to create the ticket. Correct the error(s) and try again';
}
return $ticket;
}
示例3: onOpenLimit
function onOpenLimit($sendNotice = true)
{
global $cfg;
//Log the limit notice as a warning for admin.
$msg = sprintf('Max open tickets (%d) reached for %s ', $cfg->getMaxOpenTickets(), $this->getEmail());
sys::log(LOG_WARNING, 'Max. Open Tickets Limit (' . $this->getEmail() . ')', $msg);
if (!$sendNotice || !$cfg->sendOverlimitNotice()) {
return true;
}
//Send notice to user.
$dept = $this->getDept();
if (!$dept || !($tpl = $dept->getTemplate())) {
$tpl = $cfg->getDefaultTemplate();
}
if (!$dept || !($email = $dept->getAutoRespEmail())) {
$email = $cfg->getDefaultEmail();
}
if ($tpl && ($msg = $tpl->getOverlimitMsgTemplate()) && $email) {
$body = $this->replaceTemplateVars($msg['body']);
$subj = $this->replaceTemplateVars($msg['subj']);
$body = str_replace('%signature', $dept && $dept->isPublic() ? $dept->getSignature() : '', $body);
$email->send($this->getEmail(), $subj, $body);
}
$client = $this->getClient();
//Alert admin...this might be spammy (no option to disable)...but it is helpful..I think.
$msg = 'Max. open tickets reached for ' . $this->getEmail() . "\n" . 'Open ticket: ' . $client->getNumOpenTickets() . "\n" . 'Max Allowed: ' . $cfg->getMaxOpenTickets() . "\n\nNotice sent to the user.";
Sys::alertAdmin('Overlimit Notice', $msg);
return true;
}
示例4: fetchMail
function fetchMail(){
global $cfg;
if(!$cfg->canFetchMail())
return;
//We require imap ext to fetch emails via IMAP/POP3
if(!function_exists('imap_open')) {
$msg='PHP must be compiled with IMAP extension enabled for IMAP/POP3 fetch to work!';
Sys::log(LOG_WARN,'Mail Fetch Error',$msg);
return;
}
$MAX_ERRORS=5; //Max errors before we start delayed fetch attempts - hardcoded for now.
$sql=' SELECT email_id,mail_host,mail_port,mail_protocol,mail_encryption,mail_delete,mail_errors,userid,userpass FROM '.EMAIL_TABLE.
' WHERE mail_active=1 AND (mail_errors<='.$MAX_ERRORS.' OR (TIME_TO_SEC(TIMEDIFF(NOW(),mail_lasterror))>5*60) )'.
' AND (mail_lastfetch IS NULL OR TIME_TO_SEC(TIMEDIFF(NOW(),mail_lastfetch))>mail_fetchfreq*60) ';
//echo $sql;
if(!($accounts=db_query($sql)) || !db_num_rows($accounts))
return;
//TODO: Lock the table here??
while($row=db_fetch_array($accounts)) {
$fetcher = new MailFetcher($row['userid'],Misc::decrypt($row['userpass'],SECRET_SALT),
$row['mail_host'],$row['mail_port'],$row['mail_protocol'],$row['mail_encryption']);
if($fetcher->connect()){
$fetcher->fetchTickets($row['email_id'],$row['mail_fetchmax'],$row['mail_delete']?true:false);
$fetcher->close();
db_query('UPDATE '.EMAIL_TABLE.' SET mail_errors=0, mail_lastfetch=NOW() WHERE email_id='.db_input($row['email_id']));
}else{
$errors=$row['mail_errors']+1;
db_query('UPDATE '.EMAIL_TABLE.' SET mail_errors=mail_errors+1, mail_lasterror=NOW() WHERE email_id='.db_input($row['email_id']));
if($errors>=$MAX_ERRORS){
//We've reached the MAX consecutive errors...will attempt logins at delayed intervals
$msg="\nThe system is having trouble fetching emails from the following mail account: \n".
"\nUser: ".$row['userid'].
"\nHost: ".$row['mail_host'].
"\nError: ".$fetcher->getLastError().
"\n\n ".$errors.' consecutive errors. Maximum of '.$MAX_ERRORS. ' allowed'.
"\n\n This could be connection issues related to the host. Next delayed login attempt in aprox. 10 minutes";
Sys::alertAdmin('Mail Fetch Failure Alert',$msg,true);
}
}
}
}
示例5: define
define('BANLIST_TABLE',TABLE_PREFIX.'email_banlist');
define('API_KEY_TABLE',TABLE_PREFIX.'api_key');
define('TIMEZONE_TABLE',TABLE_PREFIX.'timezone');
#Connect to the DB && get configuration from database
$ferror=null;
if (!db_connect(DBHOST,DBUSER,DBPASS) || !db_select_database(DBNAME)) {
$ferror='Unable to connect to the database';
}elseif(!($cfg=Sys::getConfig())){
$ferror='Unable to load config info from DB. Get tech support.';
}elseif(!ini_get('short_open_tag')) {
$ferror='Short open tag disabled! - osTicket requires it turned ON.';
}
if($ferror){ //Fatal error
Sys::alertAdmin('osTicket Fatal Error',$ferror); //try alerting admin.
die("<b>Fatal Error:</b> Contact system adminstrator."); //Generic error.
exit;
}
//Init
$cfg->init();
//Set default timezone...staff will overwrite it.
$_SESSION['TZ_OFFSET']=$cfg->getTZoffset();
$_SESSION['daylight']=$cfg->observeDaylightSaving();
#Cleanup magic quotes crap.
if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
$_POST=Format::strip_slashes($_POST);
$_GET=Format::strip_slashes($_GET);
$_REQUEST=Format::strip_slashes($_REQUEST);
}
示例6: define
define('API_KEY_TABLE', TABLE_PREFIX . 'api_key');
define('TIMEZONE_TABLE', TABLE_PREFIX . 'timezone');
/*
* this line not can translated, because the translate object need acess
* config object and use the database information.
*/
#Connect to the DB && get configuration from database
$ferror = null;
if (!db_connect(DBHOST, DBUSER, DBPASS) || !db_select_database(DBNAME)) {
$ferror = 'Unable to connect to the database';
} elseif (!($cfg = Sys::getConfig())) {
$ferror = 'Unable to load config info from DB. Get tech support.';
}
if ($ferror) {
//Fatal error
Sys::alertAdmin('osTicket Fatal Error', $ferror);
//try alerting admin.
die("<b>Fatal Error:</b> Contact system adminstrator.");
//Generic error.
exit;
}
//Init
$cfg->init();
//Set default timezone...staff will overwrite it.
$_SESSION['TZ_OFFSET'] = $cfg->getTZoffset();
$_SESSION['daylight'] = $cfg->observeDaylightSaving();
#Cleanup magic quotes crap.
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
$_POST = Format::strip_slashes($_POST);
$_GET = Format::strip_slashes($_GET);
$_REQUEST = Format::strip_slashes($_REQUEST);
示例7: define
define('EMAIL_TEMPLATE_TABLE', TABLE_PREFIX . 'email_template');
define('BANLIST_TABLE', TABLE_PREFIX . 'email_banlist');
define('API_KEY_TABLE', TABLE_PREFIX . 'api_key');
define('TIMEZONE_TABLE', TABLE_PREFIX . 'timezone');
#Connect to the DB && get configuration from database
$ferror = null;
if (!db_connect(DBHOST, DBUSER, DBPASS) || !db_select_database(DBNAME)) {
$ferror = 'Não foi possível conectar ao banco de dados.';
} elseif (!($cfg = Sys::getConfig())) {
$ferror = 'Não foi possível carregar as informações de configuração do banco de dados. Obtenha suporte técnico.';
} elseif (!ini_get('short_open_tag')) {
$ferror = 'Abertura de tag curta desativada! - osTicket necessita dela ligada.';
}
if ($ferror) {
//Fatal error
Sys::alertAdmin('osTicket Erro Fatal', $ferror);
//try alerting admin.
die("<b>Erro Fatal:</b> Contate o administrador do sistema.");
//Generic error.
exit;
}
//Init
$cfg->init();
//Set default timezone...staff will overwrite it.
$_SESSION['TZ_OFFSET'] = $cfg->getTZoffset();
$_SESSION['daylight'] = $cfg->observeDaylightSaving();
#Cleanup magic quotes crap.
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
$_POST = Format::strip_slashes($_POST);
$_GET = Format::strip_slashes($_GET);
$_REQUEST = Format::strip_slashes($_REQUEST);
示例8: fetchMail
function fetchMail()
{
global $cfg;
if (!$cfg->canFetchMail()) {
return;
}
//We require imap ext to fetch emails via IMAP/POP3
if (!function_exists('imap_open')) {
$msg = 'PHP deve ser compilado com extensão IMAP habilitado para buscar a trabalhar IMAP/POP3!';
Sys::log(LOG_WARN, 'Erro em buscar o email', $msg);
return;
}
$MAX_ERRORS = 5;
//Max errors before we start delayed fetch attempts - hardcoded for now.
$sql = ' SELECT email_id,mail_host,mail_port,mail_protocol,mail_encryption,mail_delete,mail_errors,userid,userpass FROM ' . EMAIL_TABLE . ' WHERE mail_active=1 AND (mail_errors<=' . $MAX_ERRORS . ' OR (TIME_TO_SEC(TIMEDIFF(NOW(),mail_lasterror))>5*60) )' . ' AND (mail_lastfetch IS NULL OR TIME_TO_SEC(TIMEDIFF(NOW(),mail_lastfetch))>mail_fetchfreq*60) ';
//echo $sql;
if (!($accounts = db_query($sql)) || !db_num_rows($accounts)) {
return;
}
//TODO: Lock the table here??
while ($row = db_fetch_array($accounts)) {
$fetcher = new MailFetcher($row['userid'], Misc::decrypt($row['userpass'], SECRET_SALT), $row['mail_host'], $row['mail_port'], $row['mail_protocol'], $row['mail_encryption']);
if ($fetcher->connect()) {
$fetcher->fetchTickets($row['email_id'], $row['mail_fetchmax'], $row['mail_delete'] ? true : false);
$fetcher->close();
db_query('UPDATE ' . EMAIL_TABLE . ' SET mail_errors=0, mail_lastfetch=NOW() WHERE email_id=' . db_input($row['email_id']));
} else {
$errors = $row['mail_errors'] + 1;
db_query('UPDATE ' . EMAIL_TABLE . ' SET mail_errors=mail_errors+1, mail_lasterror=NOW() WHERE email_id=' . db_input($row['email_id']));
if ($errors >= $MAX_ERRORS) {
//We've reached the MAX consecutive errors...will attempt logins at delayed intervals
$msg = "\nO sistema está tendo problemas para coletar e-mails da conta do e-mail seguinte: \n" . "\nUsuário: " . $row['userid'] . "\nHost: " . $row['mail_host'] . "\nErro: " . $fetcher->getLastError() . "\n\n " . $errors . ' erros consecutivos. Máximo de ' . $MAX_ERRORS . ' permitido' . "\n\n Isso pode ser problemas de conexão relacionados ao hospedeiro. Próxima tentativa de login em aprox. 10 minutos";
Sys::alertAdmin('Alerta de falha na busca por email', $msg, true);
}
}
}
}
示例9: define
define('BANLIST_TABLE', TABLE_PREFIX . 'email_banlist');
define('API_KEY_TABLE', TABLE_PREFIX . 'api_key');
define('TIMEZONE_TABLE', TABLE_PREFIX . 'timezone');
#Connect to the DB && get configuration from database
$ferror = null;
if (!db_connect(DBHOST, DBUSER, DBPASS, DBNAME)) {
$ferror = 'Unable to connect to the database';
} elseif (!($cfg = Sys::getConfig())) {
$ferror = 'Unable to load config info from DB.';
} elseif (!ini_get('short_open_tag') && (double) phpversion() < 5.4) {
// PHP ver. < 5.4 requires short_open_tag enabled
$ferror = 'Short open tag disabled! - Katak-support requires it is turned ON.';
}
if ($ferror) {
//Fatal error
Sys::alertAdmin('Katak-support fatal error', 'Server ' . $_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'] . ': ' . $ferror);
//try alerting sysadmin.
die("<br /><b>Fatal error!</b> Contact system adminstrator.");
//Generic error message.
exit;
}
//Init
$cfg->init();
//Set default timezone and store it in the session array...staff will overwrite it.
$_SESSION['TZ_OFFSET'] = $cfg->getTZoffset();
$_SESSION['daylight'] = $cfg->observeDaylightSaving();
#Cleanup magic quotes crap.
if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
$_POST = Format::strip_slashes($_POST);
$_GET = Format::strip_slashes($_GET);
$_REQUEST = Format::strip_slashes($_REQUEST);