-
-
Save Olivia231/a18a40e495e54b0914ba1525bfb9923c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
defined('SYSTEM') or die('Direct access denied.'); | |
$op = clean($_GET['option']); | |
if(empty($op) || $op == 'all'){ | |
$page_title = 'System wiadomości'; | |
if($_POST['submit']) | |
{ | |
$title = clean($_POST['title']); | |
$text = clean($_POST['text'], 1); | |
if ($title && $text) | |
{ | |
if ($_POST['method'] == 0) //message on site | |
{ | |
$sender = (int)$_POST['from']; | |
if($sender) | |
{ | |
switch ($_POST['who']) | |
{ | |
case '0': | |
$query = mysqliQuery($db, 'SELECT id FROM '.TBL_USERS.' WHERE rank = "0" && status = "1"'); | |
break; | |
case '1': | |
$query = mysqliQuery($db, 'SELECT id FROM '.TBL_USERS.' WHERE rank = "1" && status = "1"'); | |
break; | |
case '2': | |
$query = mysqliQuery($db, 'SELECT id FROM '.TBL_USERS.' WHERE rank = "2" && status = "1"'); | |
break; | |
case '3': | |
$query = mysqliQuery($db, 'SELECT id FROM '.TBL_USERS); | |
break; | |
case '4': | |
$query = mysqliQuery($db, 'SELECT id FROM '.TBL_USERS.' WHERE rank = "0" && status = "0"'); | |
break; | |
case '5': | |
$query = mysqliQuery($db, 'SELECT id FROM '.TBL_USERS.' WHERE rank = 1 && status = "0"'); | |
break; | |
default: //students from dorms | |
$who = str_replace('d_', '', $_POST['who']); | |
$query = mysqliQuery($db, 'SELECT user_id FROM '.TBL_DORMS_USERS.' WHERE dorm_id = "'.$who.'"'); | |
break; | |
} | |
while ($row = mysqli_fetch_array($query)) | |
message_send($sender, $row[0], '<b>'.$title.'</b><br>'.$text); | |
$html .= info_box('Wysłano do '.mysqli_num_rows($query).' użytkowników.', 1); | |
} | |
else | |
$html .= info_box('Podaj ID nadawcy!'); | |
} else if ($_POST['method'] == 1) { | |
switch ($_POST['who']) { | |
case '0': | |
$query = mysqliQuery($db, 'SELECT email FROM '.TBL_USERS.' WHERE rank = "0" && status = "1"'); | |
break; | |
case '1': | |
$query = mysqliQuery($db, 'SELECT email FROM '.TBL_USERS.' WHERE rank = "1" && status = "1"'); | |
break; | |
case '2': | |
$query = mysqliQuery($db, 'SELECT email FROM '.TBL_USERS.' WHERE rank = "2" && status = "1"'); | |
break; | |
case '3': | |
$query = mysqliQuery($db, 'SELECT email FROM '.TBL_USERS); | |
break; | |
case '4': | |
$query = mysqliQuery($db, 'SELECT email FROM '.TBL_USERS.' WHERE rank = "0" && status = "0"'); | |
break; | |
case '5': | |
$query = mysqliQuery($db, 'SELECT email FROM '.TBL_USERS.' WHERE rank = 1 && status = "0"'); | |
break; | |
default: //students from dorms | |
$who = str_replace('d_', '', $_POST['who']); | |
$query = mysqliQuery($db, 'SELECT user_id FROM '.TBL_DORMS_USERS.' WHERE dorm_id = "'.$who.'"'); | |
while ($row = mysqli_fetch_array($query)) | |
$ids[] = $row[0]; | |
foreach ($ids as $value) | |
$sql[] = 'id = "'.$value.'"'; | |
$sql = implode(' AND ', $sql); | |
$query = mysqliQuery($db, 'SELECT email FROM '.TBL_USERS.' WHERE '.$sql); | |
break; | |
} | |
$emails = []; | |
while ($row = mysqli_fetch_array($query)) | |
{ | |
$emails[] = $row[0]; | |
} | |
$mail['mails'] = $emails; | |
$mail['text'] = $text; | |
$mail['title'] = $title; | |
$mail['counter'] = mysqli_num_rows($query); | |
$mail = serialize($mail); | |
file_put_contents('modules/messages/temp.txt', $mail); | |
$start_sending = true; | |
} | |
} | |
else | |
$html .= info_box('Temat i treść są wymagane!'); | |
} | |
$dorms = get_dorms(); | |
foreach($dorms as $key=>$value){ | |
$options .= '<option value="d_'.$key.'">'.$value.'</option>'; | |
} | |
if ($start_sending) | |
$html = '<iframe src="'.href('option=start_sending').'" style="border: 0px;width:600px;height:40px;"></iframe>'; | |
wysiwyg(1); | |
$html .= '<form action="" method="POST"><table class="ignis-form-table"> | |
<tr><th>Metoda</th><td><input type="radio" name="method" value="0" checked> Na wiadomość na stronie - podaj ID nadawcy: <input type="number" name="from" value="'.$_SESSION['user'].'"><br> | |
<input type="radio" name="method" value="1"> Na adresy email użytkowników | |
</td></tr> | |
<tr><th>Odbiorca</th><td> | |
<select name="who"> | |
<optgroup label="Społeczność szkoły"> | |
<option value="0">Wszyscy aktywni uczniowie</option> | |
<option value="4">Wszyscy nieaktywni uczniowie</option> | |
<option value="1">Wszyscy aktywni profesorzy</option> | |
<option value="5">Wszyscy nieaktywni profesorzy</option> | |
<option value="2">Wszyscy pracownicy</option> | |
<option value="3">Wszystkie osoby</option> | |
<optgroup label="Uczniowie domów"> | |
'.$options.' | |
</select></td></tr> | |
<tr><th>Temat</th><td><input type="text" name="title"></td></tr> | |
<tr><th></th><td><textarea name="text"></textarea></td></tr> | |
</table> | |
<input type="submit" value="Wyślij list" name="submit"> | |
</form>'; | |
theme_execute($page_title, $html, '', 'admin'); | |
} | |
if ($op == 'start_sending') | |
{ | |
$mail = file_get_contents('modules/messages/temp.txt'); | |
$mail = unserialize($mail); | |
echo '<style>*{font-family: sans-serif;}</style>'; | |
if(count($mail['mails']) == 0) | |
echo 'Wiadomości zostały wysłane do '.$mail['counter'].' osób!'; | |
else | |
{ | |
foreach ($mail['mails'] as $key => $value) | |
{ | |
$i++; | |
email($value, $mail['title'], $mail['text']); | |
unset($mail['mails'][$key]); | |
if ($i == 2) | |
break; | |
} | |
$r = $mail['counter'] - count($mail['mails']); | |
$proc = (int)(($r / $mail['counter']) * 100); | |
echo 'Wysyłanie... '.$proc.'% <meta http-equiv="refresh" content="0">'; | |
$mail = serialize($mail); | |
file_put_contents('modules/messages/temp.txt', $mail); | |
} | |
//ob_start(); | |
//var_dump($mail); | |
//$s = ob_get_clean(); | |
//$html .= 'wysyłam do: '.$s; | |
theme_execute($page_title, $html, 'blank', 'admin'); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment