get paid to paste

message.php 8/13/17

<?php
/*
UserSpice 4
An Open Source PHP User Management System
by the UserSpice Team at http://UserSpice.com

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

Special thanks to user Brandin for the mods!
*/
?>
<?php
require_once 'init.php';
require_once $abs_us_root.$us_url_root.'users/includes/header.php';
require_once $abs_us_root.$us_url_root.'users/includes/navigation.php';
?>

<?php if (!securePage($_SERVER['PHP_SELF'])){die();}
if($settings->messaging != 1){
  Redirect::to('account.php?err=Messaging+is+disabled');
}
?>
<style>
.chat
{
  list-style: none;
  margin: 0;
  padding: 0;
}

.chat li
{
  margin-bottom: 10px;
  padding-bottom: 5px;
  border-bottom: 1px dotted #B3A9A9;
}

.chat li.left .chat-body
{
  margin-left: 60px;
}

.chat li.right .chat-body
{
  margin-right: 60px;
}


.chat li .chat-body p
{
  margin: 0;
  color: #777777;
}

.panel .slidedown .glyphicon, .chat .glyphicon
{
  margin-right: 5px;
}

.panel-body
{
  overflow-y: scroll;
  height: 250px;
}

::-webkit-scrollbar-track
{
  -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  background-color: #F5F5F5;
}

::-webkit-scrollbar
{
  width: 12px;
  background-color: #F5F5F5;
}

::-webkit-scrollbar-thumb
{
  -webkit-box-shadow: inset 0 0 6px rgba(0,0,0,.3);
  background-color: #555;
}
</style>
<?php
$validation = new Validate();
$errors = [];
$successes = [];
$id = Input::get('id');
$unread = Input::get('unread');


$findThread = $db->query("SELECT * FROM message_threads WHERE id = ?",array($id));
$thread = $findThread->first();

$findMessageQ = $db->query("SELECT * FROM messages WHERE msg_thread = ?",array($id));
$messages = $findMessageQ->results();
$single = $findMessageQ->first();

$findUnread = $db->query("SELECT * FROM messages WHERE msg_thread = ? AND msg_to = ? AND msg_read != 1",array($id, $user->data()->id));
$myUnread = $findUnread->count();

//make sure there are messages TO me in the thread so I don't get a false unread button
$checkToQ = $db->query("SELECT * FROM messages WHERE msg_thread = ? AND msg_to = ?",array($id, $user->data()->id));
$checkTo = $checkToQ->count();


if (($single->msg_to != $user->data()->id) && ($single->msg_from != $user->data()->id)){
  $ip = ipCheck();
  $fields = array(
    'user' 		=> $user->data()->id,
    'page'		=> 42,
    'ip'			=> $ip,
  );
  $db->insert('audit',$fields);
  Redirect::to('messages.php?err=That thread does not belong to you or does not exist.'); die();
}

//ONLY mark messages read if you are the recipient
if($unread != 1){
  foreach ($messages as $message){
    if(($message->msg_read == 0) && ($message->msg_to == $user->data()->id)) {
      $db->update('messages',$message->id,['msg_read'=>1]);
    }
  }
}
//
if(!empty($_POST['markUnread'])){
  // die("<br><br>Unread");
  foreach ($messages as $message){
    if(($message->msg_read == 1) && ($message->msg_to == $user->data()->id)) {
      $db->update('messages',$message->id,['msg_read'=>0]);
      Redirect::to('message.php?id='.$id.'&unread=1');
    }
  }

}

if(!empty($_POST['markRead'])){
  foreach ($messages as $message){
    if(($message->msg_read == 0) && ($message->msg_to == $user->data()->id)) {
      $db->update('messages',$message->id,['msg_read'=>1]);
    }
  }
  Redirect::to('message.php?id='.$id);
}
//
$validation = new Validate();
//PHP Goes Here!

$errors = [];
$successes = [];

if(!empty($_POST['reply'])){

  $to = $single->msg_to;
  if($to == $user->data()->id){
    $to = $single->msg_from;
  }
  $msg_body = Input::get('msg_body');
  $validation->check($_POST,array(
    'msg_body' => array(
      'display' => 'Message',
      'required' => true
    )
  ));
  if($validation->passed()){
  $date = date("Y-m-d H:i:s");
  $fields = array(
    'msg_from'    => $user->data()->id,
    'msg_to'      => $to,
    'msg_body'    => $msg_body,
    'msg_thread'  => $id,
    'sent_on'     => $date,
  );

  $db->insert('messages',$fields);

  $threadUpdate = array(
    'last_update'    => $date,
    'last_update_by' => $user->data()->id,
	'archive_to' => 0,
	'archive_from' => 0
  );

  $db->update('message_threads',$id,$threadUpdate);

  $email = $db->query("SELECT fname,email,msg_notification FROM users WHERE id = ?",array($to))->first();
	if($settings->msg_notification == 1 && $email->msg_notification == 1) {
		$params = array(
				'fname' => $user->data()->fname,
				'sendfname' => $email->fname,
				'body' => Input::get('msg_body'),
				'msg_thread' => $id,
			);
				$to = rawurlencode($email->email);
				$body = email_body('_email_msg_template.php',$params);
				email($to,$thread->msg_subject,$body);
	}
  
  $successes[] = "Your message has been sent!";
}
$findMessageQ = $db->query("SELECT * FROM messages WHERE msg_thread = ?",array($id));
$messages = $findMessageQ->results();
$single = $findMessageQ->first();
}


//PHP Goes Here!
?>
<div id="page-wrapper">
  <div class="container-fluid">
<?=resultBlock($errors,$successes);?>
<?=$validation->display_errors();?>
    <div class="row">
      <div id="form-errors">
          <?=$validation->display_errors();?></div>
      <div class="col-sm-10 col-sm-offset-1">
        <div class="row">
          <div class="col-sm-10">
            <h2><a href="messages.php"><i class="glyphicon glyphicon-chevron-left"></i></a> <?=$thread ->msg_subject?></h2>
          </div>
          <div class="col-sm-2">
            <?php
            if($myUnread == 0 && $checkTo > 0){
              ?>
              <form class="" action="message.php?id=<?php echo $id?>" method="post">
                <input type="submit" class="btn btn-danger" name="markUnread" value="Mark as Unread">
              </form>
              <?php
            }
            ?>
          </div>
        </div>

        <ul class="chat">
          <?php
          //dnd($messages);$grav = get_gravatar(strtolower(trim($user->data()->email)));
          foreach ($messages as $m){
            $findUser = $db->query("SELECT email FROM users WHERE id = $m->msg_from");
            $foundUser = $findUser->first();
            $grav = get_gravatar(strtolower(trim($foundUser->email)));
			$lastmessage = strtotime($m->sent_on);
				$difference = ceil((time() - $lastmessage) / (60 * 60 * 24));
				// if($difference==0) { $last_update = "Today, "; $last_update .= date("g:i A",$lastmessage); }
				if($difference >= 0 && $difference < 7) {
					$today = date("j");
					$last_message = date("j",$lastmessage);
					if($today==$last_message) { $last_update = "Today, "; $last_update .= date("g:i A",$lastmessage); }
					else {
				$last_update = date("l g:i A",$lastmessage); } }
				elseif($difference >= 7) { $last_update = date("M j, Y g:i A",$lastmessage); }
            if($m->msg_to == $user->data()->id){
              ?>
              <li class="left clearfix"><span class="chat-img pull-left" style="padding-right:10px">
                <img src="<?=$grav ?>" width="75" class="img-thumbnail" alt="Generic placeholder thumbnail"></p>
                <!-- <img src="http://placehold.it/50/55C1E7/fff&text=U" alt="User Avatar" class="img-circle" /> -->
              </span>
              <div class="chat-body clearfix">
                <div class="header">
                  <strong class="primary-font"><?php echouser($m->msg_from);?></strong> <small class="pull-right text-muted">
                    <span class="glyphicon glyphicon-time"></span><?=$last_update?></small>
                  </div>
                  <p>
                    <?php $msg = html_entity_decode($m->msg_body);
                    echo $msg; ?>
                  </p>
                </div>
              </li>

              <?php }else{ ?>

                <li class="left clearfix"><span class="chat-img pull-left" style="padding-right:10px">
                  <img src="<?=$grav; ?>" width="75" class="img-thumbnail" alt="Generic placeholder thumbnail"></p>
                </span>
                <div class="chat-body clearfix">
                  <div class="header">
                    <small class="pull-right text-muted"><span class="glyphicon glyphicon-time"></span><?=$last_update?></small>
                    <strong class="pull-left primary-font"><?php echouser($m->msg_from);?></strong>
                  </div>
                  <p>
                    <br>
                    <?php $msg = html_entity_decode($m->msg_body);
                    echo $msg; ?>
                  </p>
				  <?php if($m->msgfrom = $user->data()->id) {?><p class="pull-right"><?php if($m->msg_read==1) {?><i class="glyphicon glyphicon-check"></i> Read<?php } else { ?><i class="glyphicon glyphicon-unchecked"></i> Delivered<?php } ?></p><?php } ?>
                </div>
              </li>



              <?php } //end if/else statement ?>


              <?php } //end foreach ?>

              <ul>
                <!-- <h3>From: <?php //echouser($m->msg_from);?></h3> -->

                <h3>Quick Reply <a href="#" data-toggle="modal" data-target="#reply"><i class="glyphicon glyphicon-new-window"></i></a></h3>
                <form name="reply_form" action="message.php?id=<?=$id?>" method="post">
                  <div align="center">
                    <input type="text" class="form-control" placeholder="Click here or press Alt + R to focus on this box OR press Shift + R to open the expanded reply pane!" name="msg_body" id="msg_body"/>
					<?php /* textarea rows="10" cols="80"  id="mytextarea" name="msg_body"></textarea> */ ?></div>
                    <input type="hidden" name="csrf" value="<?=Token::generate();?>" >
                  </p>
                  <p>
                    <input type="submit" class="btn btn-primary" name="reply" value="Reply">
                  </form>
                </div> <!-- /.col -->

<div id="reply" class="modal fade" role="dialog">
  <div class="modal-dialog">

    <!-- Modal content-->
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</button>
        <h4 class="modal-title">Reply</h4>
      </div>
      <div class="modal-body">
<form name="reply_form" action="message.php?id=<?=$id?>" method="post">
                  <div align="center">
                    <textarea rows="10" cols="80"  id="mytextarea" name="msg_body"></textarea></div>
                    <input type="hidden" name="csrf" value="<?=Token::generate();?>" >
                  </p>
                  <p>
                  <br />
      </div>
      <div class="modal-footer">
	  <div class="btn-group">	<input type="hidden" name="csrf" value="<?=Token::generate();?>" />
	<input class='btn btn-primary' type='submit' name="reply" value='Reply' class='submit' /></div>
	</form>
         <div class="btn-group"><button type="button" class="btn btn-default" data-dismiss="modal">Close</button></div>
      </div>
    </div>
	</div>
  </div>
</div>
              </div> <!-- /.row -->
            </div> <!-- /.container -->
          </div> <!-- /.wrapper -->


          <!-- footers -->
          <?php require_once $abs_us_root.$us_url_root.'users/includes/page_footer.php'; // the final html footer copyright row + the external js calls ?>
            <script src='https:////cdn.tinymce.com/4/tinymce.min.js'></script>
			<script src="js/jwerty.js"></script>
			<script>
			tinymce.init({
			selector: '#mytextarea'
			});
			jwerty.key('esc', function () {
				$('.modal').modal('hide');
			});
			jwerty.key('shift+r', function () {
				$('.modal').modal('hide');
				$('#reply').modal();
			});
			jwerty.key('alt+r', function () {
				$('.modal').modal('hide');
				$('#msg_body').focus();
			});
			</script>
            <!-- Place any per-page javascript here -->

            <?php require_once $abs_us_root.$us_url_root.'users/includes/html_footer.php'; // currently just the closing /body and /html ?>

Pasted: Aug 13, 2017, 8:25:14 pm
Views: 11