add_action('silex_action','the_notice');
function notice_title(){
echo "Notice";
}
// Define the CSS
function notice_css() {
?>
get('/notice', function (Request $request) {
global $hooks;
$hooks->add_action('the_title',"notice_title");
$hooks->add_action('global_css',"notice_css");
$hooks->add_action('global_js',"notice_js");
the_head();
include 'notice.tpl.php';
the_footer();
return "";
});
$app->post('/notice/list', function(Request $request) {
$curpage = $request->get('page');
include 'notice.list.php';
return '';
});
$app->post('/notice/companies', function(Request $request) {
$curpage = $request->get('page');
include 'companies.list.php';
return '';
});
$app->post('/notice/contacts', function(Request $request) {
$curpage = $request->get('page');
include 'contact.list.php';
return '';
});
$app->post('/notice/add-notice', function (Request $request) {
global $db;
$user_id = $_SESSION['user_id'];
$company = $request->get('company');
if($company == null){
$company = array();
}
$contact = $request->get('contact');
if($contact == null){
$contact = array();
}
$message = $request->get('message');
$db->bind("message", $message);
$db->bind("chat_type", "1");
$db->bind("from_id", $_SESSION['user_id']);
$createMessage = $db->query("INSERT INTO notice_messages(message,chat_type,from_id) VALUES (:message,:chat_type,:from_id)");
$message_id = $db->lastInsertId();
foreach ($company as $key => $value) {
$db->bind("company_id", $value);
$getCompany = $db->query("SELECT * FROM user_company WHERE company_id = :company_id and position = 1");
foreach($getCompany as $key => $user_company){
array_push($contact, $user_company['user_id']);
}
}
foreach ($contact as $key => $value) {
$db->bind("owner_id", $value);
$checkRoom = $db->query("SELECT * FROM notice_rooms WHERE owner_id = :owner_id and room_type = 'general'");
if(count($checkRoom) == 0){
$db->bind("owner_id", $value);
$createRoom = $db->query("INSERT INTO notice_rooms(chat_name,owner_id,room_type) VALUES ('General', :owner_id, 'general')");
$room_id = $db->lastInsertId();
}else{
$room_id = $checkRoom[0]["room_id"];
}
$db->bind("user_id", $_SESSION['user_id']);
$db->bind("room_id", $room_id);
$checkMembers = $db->query("SELECT * FROM notice_members WHERE user_id = :user_id and room_id = :room_id");
if(count($checkMembers) == 0){
$db->bind("user_id", $_SESSION['user_id']);
$db->bind("room_id", $room_id);
$createMembers = $db->query("INSERT INTO notice_members(room_id,user_id,status) VALUES (:room_id, :user_id, 1)");
}
$db->bind("user_id", $value);
$db->bind("room_id", $room_id);
$checkMembers = $db->query("SELECT * FROM notice_members WHERE user_id = :user_id and room_id = :room_id");
if(count($checkMembers) == 0){
$db->bind("user_id", $value);
$db->bind("room_id", $room_id);
$createMembers = $db->query("INSERT INTO notice_members(room_id,user_id,status) VALUES (:room_id, :user_id, 1)");
}
$db->bind("room_id", $room_id);
$db->bind("message_id", $message_id);
$createMembers = $db->query("INSERT INTO notice_room_message(room_id,message_id) VALUES (:room_id, :message_id)");
$db->bind("room_id", $room_id);
$db->bind("message_id", $message_id);
$db->bind("user_id", $value);
$createUnread = $db->query("INSERT INTO notice_unread(room_id,message_id, user_id) VALUES (:room_id, :message_id, :user_id)");
}
if ($createMessage) {
return new Response("SUCCESS", 200);
} else {
return new Response('FAILED', 200);
}
});
}