PHP вставить фильтр и распечатать его на изображениях - PullRequest
0 голосов
/ 11 мая 2018

У меня есть эта раздражающая проблема, когда я пытаюсь добавить фильтр к изображению, которое я разместил.Фильтры изображений загружаются с помощью CSS-файла: CSSgram.css.В поле выбора указан правильный фильтр (опция html), и он получает его и правильно сохраняет в базе данных.Однако я не могу распечатать правильный фильтр на изображении, потому что есть ошибки в классе HTML, где следует добавить переменную php.

Фрагменты кода ниже:

<?php
//tweet.PHP
  class Tweet extends User{
	protected $message;

 	public function __construct($pdo){
		$this->pdo = $pdo;
		// added new code for PHP 7
		$this->message  = new Message($this->pdo);
	}

      public function tweets($user_id, $num){
 	    //select alles uit de db
	    $stmt = $this->pdo->prepare("SELECT * FROM `tweets` LEFT JOIN `users` ON `tweetBy` = `user_id` WHERE `tweetBy` = :user_id AND `retweetID` = '0' OR `tweetBy` = `user_id` AND `retweetBy` != :user_id AND `tweetBy` IN (SELECT `receiver` FROM `follow` WHERE `sender` =:user_id) ORDER BY `tweetID` DESC LIMIT :num");
	    $stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
	    $stmt->bindParam(":num", $num, PDO::PARAM_INT);
	    $stmt->execute();
	    $tweets = $stmt->fetchAll(PDO::FETCH_OBJ);

	    //display de geposte info
	    foreach ($tweets as $tweet) {
	      $likes = $this->likes($user_id, $tweet->tweetID);
	      $retweet = $this->checkRetweet($tweet->tweetID, $user_id);
	      $user = $this->userData($tweet->retweetBy);
            var_dump($tweet);
	      //insert html van de tweets
	      echo '<div class="all-tweet">
			      <div class="t-show-wrap">
			       <div class="t-show-inner">
			       '.(($retweet['retweetID'] === $tweet->retweetID OR $tweet->retweetID > 0) ? '
			      	<div class="t-show-banner">
			      		<div class="t-show-banner-inner">
			      			<span><i class="fa fa-retweet" aria-hidden="true"></i></span><span>'.$user->screenName.' Retweeted</span>
			      		</div>
			      	</div>'
			        : '').'

			        '.((!empty($tweet->retweetMsg) && $tweet->tweetID === $retweet['tweetID'] or $tweet->retweetID > 0) ? '<div class="t-show-head">
			        <div class="t-show-popup" data-tweet="'.$tweet->tweetID.'">
			          <div class="t-show-img">
			        		<img src="'.$user->profileImage.'"/>
			        	</div>
			        	<div class="t-s-head-content">
			        		<div class="t-h-c-name">
			        			<span><a href="'.$user->username.'">'.$user->screenName.'</a></span>
			        			<span>@'.$user->username.'</span>
			        			<span>'.$this->timeAgo($retweet['postedOn']).'</span>
			        		</div>
			        		<div class="t-h-c-dis">
			        			'.$this->getTweetLinks($tweet->retweetMsg).'
			        		</div>
			        	</div>
			        </div>
			        <div class="t-s-b-inner">
			        	<div class="t-s-b-inner-in">
			        		<div class="retweet-t-s-b-inner">
			            '.((!empty($tweet->tweetImage)) ? '
			        			<div class="retweet-t-s-b-inner-left">
			        				<img src="'.$tweet->tweetImage.'" class="'.$tweet->filter.'" data-tweet="'.$tweet->tweetID.'"/>
			        			</div>' : '').'
			        			<div>
			        				<div class="t-h-c-name">
			        					<span><a href="'.$tweet->username.'">'.$tweet->screenName.'</a></span>
			        					<span>@'.$tweet->username.'</span>
			        					<span>'.$this->timeAgo($tweet->postedOn).'</span>
			        				</div>
			        				<div class="retweet-t-s-b-inner-right-text">
			        					'.$this->getTweetLinks($tweet->status).'
			        				</div>
			        			</div>
			        		</div>
			        	</div>
			        </div>
			        </div>' : '

			      	<div class="t-show-popup" data-tweet="'.$tweet->tweetID.'">
			      		<div class="t-show-head">
			      			<div class="t-show-img">
			      				<img src="'.$tweet->profileImage.'"/>
			      			</div>
			      			<div class="t-s-head-content">
			      				<div class="t-h-c-name">
			      					<span><a href="'.$tweet->username.'">'.$tweet->screenName.'</a></span>
			      					<span>@'.$tweet->username.'</span>
			      					<span>'.$this->timeAgo($tweet->postedOn).'</span>
			      				</div>
			      				<div class="t-h-c-dis">
			      					'.$this->getTweetLinks($tweet->status).'
			      				</div>
			      			</div>
			      		</div>'.
			          ((!empty($tweet->tweetImage)) ?
			      		 '<!--tweet show head end-->
			            		<div class="t-show-body">
			            		  <div class="t-s-b-inner">
			            		   <div class="t-s-b-inner-in">
			            		     <img src="'.$tweet->tweetImage.'" class="" data-tweet="'.$tweet->tweetID.'"/>
			            		   </div>
			            		  </div>
			            		</div>
			            		<!--tweet show body end-->
			          ' : '').'

			      	</div>').'
			      	<div class="t-show-footer">
			      		<div class="t-s-f-right">
			      			<ul>
			      				<li><button><i class="fa fa-share" aria-hidden="true"></i></button></li>
			      				<li>'.(($tweet->tweetID === $retweet['retweetID']) ?
			      					'<button class="retweeted" data-tweet="'.$tweet->tweetID.'" data-user="'.$tweet->tweetBy.'"><i class="fa fa-retweet" aria-hidden="true"></i><span class="retweetsCount">'.$tweet->retweetCount.'</span></button>' :
			      					'<button class="retweet" data-tweet="'.$tweet->tweetID.'" data-user="'.$tweet->tweetBy.'"><i class="fa fa-retweet" aria-hidden="true"></i><span class="retweetsCount">'.(($tweet->retweetCount > 0) ? $tweet->retweetCount : '').'</span></button>').'
			      				</li>
			      				<li>'.(($likes['likeOn'] === $tweet->tweetID) ?
			      					'<button class="unlike-btn" data-tweet="'.$tweet->tweetID.'" data-user="'.$tweet->tweetBy.'"><i class="fa fa-heart" aria-hidden="true"></i><span class="likesCounter">'.$tweet->likesCount.'</span></button>' :
			      					'<button class="like-btn" data-tweet="'.$tweet->tweetID.'" data-user="'.$tweet->tweetBy.'"><i class="fa fa-heart-o" aria-hidden="true"></i><span class="likesCounter">'.(($tweet->likesCount > 0) ? $tweet->likesCount : '' ).'</span></button>').'
			      				</li>
			               
			                '.(($tweet->tweetBy === $user_id) ? '
			              	    <li>
			      					<a href="#" class="more"><i class="fa fa-ellipsis-h" aria-hidden="true"></i></a>
			      					<ul>
			      					  <li><label class="deleteTweet" data-tweet="'.$tweet->tweetID.'">Delete Tweet</label></li>
			      					</ul>
			      				</li>' : '').'

			      			</ul>
			      		</div>
			      	</div>
			      </div>
			      </div>
			      </div>';
	    }
	}
  
	public function getUserTweets($user_id){
		$stmt = $this->pdo->prepare("SELECT * FROM `tweets` LEFT JOIN `users` ON `tweetBy` = `user_id` WHERE `tweetBy` = :user_id AND `retweetID` = '0' OR `retweetBy` = :user_id ORDER BY `tweetID` DESC");
		$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
		$stmt->execute();
		return $stmt->fetchAll(PDO::FETCH_OBJ);
	}
 
	public function addLike($user_id, $tweet_id, $get_id){
		$stmt = $this->pdo->prepare("UPDATE `tweets` SET `likesCount` = `likesCount`+1 WHERE `tweetID` = :tweet_id");
		$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
		$stmt->execute();

		$this->create('likes', array('likeBy' => $user_id, 'likeOn' => $tweet_id));
	
		if($get_id != $user_id){
			//this fixed php 7 error for non static methods
			$this->message->sendNotification($get_id, $user_id, $tweet_id, 'like');
		}
	}

	public function unLike($user_id, $tweet_id, $get_id){
		$stmt = $this->pdo->prepare("UPDATE `tweets` SET `likesCount` = `likesCount`-1 WHERE `tweetID` = :tweet_id");
		$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
		$stmt->execute();

		$stmt = $this->pdo->prepare("DELETE FROM `likes` WHERE `likeBy` = :user_id and `likeOn` = :tweet_id");
		$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
		$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
		$stmt->execute(); 
	}

	public function likes($user_id, $tweet_id){
		$stmt = $this->pdo->prepare("SELECT * FROM `likes` WHERE `likeBy` = :user_id AND `likeOn` = :tweet_id");
		$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
		$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
		$stmt->execute();
		return $stmt->fetch(PDO::FETCH_ASSOC);
	}
	
	public function getTrendByHash($hashtag){
		$stmt = $this->pdo->prepare("SELECT * FROM `trends` WHERE `hashtag` LIKE :hashtag LIMIT 5");
		$stmt->bindValue(":hashtag", $hashtag.'%');
		$stmt->execute();
		return $stmt->fetchAll(PDO::FETCH_OBJ);
	}

	public function getMension($mension){
		$stmt = $this->pdo->prepare("SELECT `user_id`,`username`,`screenName`,`profileImage` FROM `users` WHERE `username` LIKE :mension OR `screenName` LIKE :mension LIMIT 5");
		$stmt->bindValue("mension", $mension.'%');
		$stmt->execute();
		return $stmt->fetchAll(PDO::FETCH_OBJ);

	}

	public function addTrend($hashtag){
		preg_match_all("/#+([a-zA-Z0-9_]+)/i", $hashtag, $matches);
		if($matches){
			$result = array_values($matches[1]);
		}
		$sql = "INSERT INTO `trends` (`hashtag`, `createdOn`) VALUES (:hashtag, CURRENT_TIMESTAMP)";
		foreach ($result as $trend) {
			if($stmt = $this->pdo->prepare($sql)){
				$stmt->execute(array(':hashtag' => $trend));
			}
		}
	}

	public function addMention($status,$user_id, $tweet_id){
		if(preg_match_all("/@+([a-zA-Z0-9_]+)/i", $status, $matches)){
			if($matches){
				$result = array_values($matches[1]);
			}
			$sql = "SELECT * FROM `users` WHERE `username` = :mention";
			foreach ($result as $trend) {
				if($stmt = $this->pdo->prepare($sql)){
					$stmt->execute(array(':mention' => $trend));
					$data = $stmt->fetch(PDO::FETCH_OBJ);
				}
			}

			if($data->user_id != $user_id){
				//This fixed PHP 7 error for non static methods
				$this->message->sendNotification($data->user_id, $user_id, $tweet_id, 'mention');
			}
		}
	}

	public function getTweetLinks($tweet){
		$tweet = preg_replace("/(https?:\/\/)([\w]+.)([\w\.]+)/", "<a href='$0' target='_blink'>$0</a>", $tweet);
		$tweet = preg_replace("/#([\w]+)/", "<a href='http://localhost/twitter/hashtag/$1'>$0</a>", $tweet);		
		$tweet = preg_replace("/@([\w]+)/", "<a href='http://localhost/twitter/$1'>$0</a>", $tweet);
		return $tweet;		
	}

	public function getPopupTweet($tweet_id){
		$stmt = $this->pdo->prepare("SELECT * FROM `tweets`,`users` WHERE `tweetID` = :tweet_id AND `tweetBy` = `user_id`");
		$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
		$stmt->execute();
		return $stmt->fetch(PDO::FETCH_OBJ);
	}

	public function retweet($tweet_id, $user_id, $get_id, $comment){
		$stmt = $this->pdo->prepare("UPDATE `tweets` SET `retweetCount` = `retweetCount`+1 WHERE `tweetID` = :tweet_id AND `tweetBy` = :get_id");
		$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
		$stmt->bindParam(":get_id", $get_id, PDO::PARAM_INT);
		$stmt->execute();

		$stmt = $this->pdo->prepare("INSERT INTO `tweets` (`status`,`tweetBy`,`retweetID`,`retweetBy`,`tweetImage`,`postedOn`,`likesCount`,`retweetCount`,`retweetMsg`) SELECT `status`,`tweetBy`,`tweetID`,:user_id,`tweetImage`,`postedOn`,`likesCount`,`retweetCount`,:retweetMsg FROM `tweets` WHERE `tweetID` = :tweet_id");
		$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
		$stmt->bindParam(":retweetMsg", $comment, PDO::PARAM_STR);
		$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
		$stmt->execute();

		//This fixed PHP 7 error for non static methods
		$this->message->sendNotification($get_id, $user_id, $tweet_id, 'retweet');

 	}

	public function checkRetweet($tweet_id, $user_id){
		$stmt = $this->pdo->prepare("SELECT * FROM `tweets` WHERE `retweetID` = :tweet_id AND `retweetBy` = :user_id or `tweetID` = :tweet_id and `retweetBy` = :user_id");
		$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
		$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
		$stmt->execute();
		return $stmt->fetch(PDO::FETCH_ASSOC);
	}

	public function tweetPopup($tweet_id){
		$stmt = $this->pdo->prepare("SELECT * FROM `tweets`,`users` WHERE `tweetID` = :tweet_id and `user_id` = `tweetBy`");
		$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
		$stmt->execute();
		return $stmt->fetch(PDO::FETCH_OBJ);
	}

	public function comments($tweet_id){
		$stmt = $this->pdo->prepare("SELECT * FROM `comments` LEFT JOIN `users` ON `commentBy` = `user_id` WHERE `commentOn` = :tweet_id");
		$stmt->bindParam(":tweet_id", $tweet_id, PDO::PARAM_INT);
		$stmt->execute();
		return $stmt->fetchAll(PDO::FETCH_OBJ);
	}

	public function countTweets($user_id){
		$stmt = $this->pdo->prepare("SELECT COUNT(`tweetID`) AS `totalTweets` FROM `tweets` WHERE `tweetBy` = :user_id AND `retweetID` = '0' OR `retweetBy` = :user_id");
		$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
		$stmt->execute();
		$count = $stmt->fetch(PDO::FETCH_OBJ);
		echo $count->totalTweets;
	}

	public function countLikes($user_id){
		$stmt = $this->pdo->prepare("SELECT COUNT(`likeID`) AS `totalLikes` FROM `likes` WHERE `likeBy` = :user_id");
		$stmt->bindParam(":user_id", $user_id, PDO::PARAM_INT);
		$stmt->execute();
		$count = $stmt->fetch(PDO::FETCH_OBJ);
		echo $count->totalLikes;
	} 

	public function trends(){
		$stmt = $this->pdo->prepare("SELECT *, COUNT(`tweetID`) AS `tweetsCount` FROM `trends` INNER JOIN `tweets` ON `status` LIKE CONCAT('%#',`hashtag`,'%') OR `retweetMsg` LIKE CONCAT('%#',`hashtag`,'%') GROUP BY `hashtag` ORDER BY `tweetID` LIMIT 10");
		$stmt->execute();	
		$trends = $stmt->fetchAll(PDO::FETCH_OBJ);
		echo '<div class="trend-wrapper"><div class="trend-inner"><div class="trend-title"><h3>Trends</h3></div><!-- trend title end-->';
		foreach ($trends as $trend) {
			echo '<div class="trend-body">
					<div class="trend-body-content">
						<div class="trend-link">
							<a href="'.BASE_URL.'hashtag/'.$trend->hashtag.'">#'.$trend->hashtag.'</a>
						</div>
						<div class="trend-tweets">
							'.$trend->tweetsCount.' <span>tweets</span>
						</div>
					</div>
				</div>';
		}
		echo '</div></div>';		
	} 

	public function getTweetsByHash($hashtag){
		$stmt = $this->pdo->prepare("SELECT * FROM `tweets` LEFT JOIN `users` ON `tweetBy` = `user_id` WHERE `status` LIKE :hashtag OR `retweetMsg` LIKE :hashtag");
		$stmt->bindValue(":hashtag", '%#'.$hashtag.'%', PDO::PARAM_STR);
		$stmt->execute();
		return $stmt->fetchAll(PDO::FETCH_OBJ);
	}

	public function getUsersByHash($hashtag){
		$stmt = $this->pdo->prepare("SELECT DISTINCT * FROM `tweets` INNER JOIN `users` ON `tweetBy` = `user_id` WHERE `status` LIKE :hashtag OR `retweetMsg` LIKE :hashtag GROUP BY `user_id`");
		$stmt->bindValue(":hashtag", '%#'.$hashtag.'%', PDO::PARAM_STR);
		$stmt->execute();
		return $stmt->fetchAll(PDO::FETCH_OBJ);
	}
}
?>
<?php
//HOME.php
  include 'core/init.php';
  $user_id = $_SESSION['user_id'];
  $user = $getFromU->userData($user_id);
  $notify  = $getFromM->getNotificationCount($user_id);


  if(isset($_POST['tweet'])){
    $status = $getFromU->checkinput($_POST['status']);
    $tweetImage = '';
    $filter = $_POST['filter'];  //filter select


    if(!empty($status) or !empty($_FILES['file']['name'][0])){
      if(!empty($_FILES['file']['name'][0])){

          //voeg image pad toe
        $tweetImage = $getFromU->uploadImage($_FILES['file']);
      }
        // check textarea lengte
      if(strlen($status) > 140){
        $error = "The text of your tweet is too long";
      }
      //insert data naar de tweets tabel via create method via een array
         $tweet_id = $getFromU->create('tweets', array('status' => $status, 'tweetBy' => $user_id, 'tweetImage' => $tweetImage,
             'postedOn' => date('Y-m-d H:i:s'), 'filter' => $filter ));

      preg_match_all("/#+([a-zA-Z0-9_]+)/i", $status, $hashtag);


       if(!empty($hashtag)){
        $getFromT->addTrend($status);
      }
      $getFromT->addMention($status, $user_id, $tweet_id);
    }else{
      $error = "Type or choose image to post";
    }


  }

?><!DOCTYPE HTML>
 <html>
	<head>
		<title>Home - Tweety</title>
		  <meta charset="UTF-8" />
		  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.css"/>
 	  	  <link rel="stylesheet" href="assets/css/style-complete.css"/>
 	  	  <link rel="stylesheet" href="assets/css/cssgram.css"/>
   		  <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
	</head>
	<!--Helvetica Neue-->
<body>
<div class="wrapper">
<!-- header wrapper -->
<div class="header-wrapper">

<div class="nav-container">
	<!-- Nav -->
	<div class="nav">

		<div class="nav-left">
			<ul>
				<li><a href="home.php"><i class="fa fa-home" aria-hidden="true"></i>Home</a></li>
        	  	<?php if($getFromU->loggedIn()=== true){?>
					<li><a href="notification.php"><i class="fa fa-bell" aria-hidden="true"></i>Notifications<span id="notificaiton"><?php if($notify->totalN > 0){echo '<span class="span-i">'.$notify->totalN.'</span>';}?></span></a></li>
					<li id="messagePopup"><i class="fa fa-envelope" aria-hidden="true"></i>Messages<span id="messages"><?php if($notify->totalM > 0){echo '<span class="span-i">'.$notify->totalM.'</span>';}?></span></li>
				<?php }?>

			</ul>
		</div><!-- nav left ends-->

		<div class="nav-right">
			<ul>
				<li>
					<input type="text" placeholder="Search" class= "search"/>
					<i class="fa fa-search" aria-hidden="true"></i>
					<div class="search-result">
					</div>
				</li>

				<li class="hover"><label class="drop-label" for="drop-wrap1"><img src="<?php echo $user->profileImage; ?>"/></label>
				<input type="checkbox" id="drop-wrap1">
				<div class="drop-wrap">
					<div class="drop-inner">
						<ul>
							<li><a href="profile.php">Profile</a></li>
							<li><a href="account.php">Settings</a></li>
							<li><a href="logout.php">Log out</a></li>
						</ul>
					</div>
				</div>
				</li>
				<li><label class="addTweetBtn">Tweet</label></li>
			</ul>
		</div><!-- nav right ends-->

	</div><!-- nav ends -->

</div><!-- nav container ends -->

</div><!-- header wrapper end -->
<script type="text/javascript" src="assets/js/search.js"></script>
<script type="text/javascript" src="assets/js/hashtag.js"></script>

<!---Inner wrapper-->
<div class="inner-wrapper">
<div class="in-wrapper">
	<div class="in-full-wrap">
		<div class="in-left">
			<div class="in-left-wrap">
		<div class="info-box">
			<div class="info-inner">
				<div class="info-in-head">
					<!-- PROFILE-COVER-IMAGE -->
					<img src="<?php echo $user->profileCover; ?>"/>
				</div><!-- info in head end -->
				<div class="info-in-body">
					<div class="in-b-box">
						<div class="in-b-img">
						<!-- PROFILE-IMAGE -->
							<img src="<?php echo $user->profileImage; ?>"/>
						</div>
					</div><!--  in b box end-->
					<div class="info-body-name">
						<div class="in-b-name">
							<div><a href="<?php echo $user->username; ?>"><?php echo $user->screenName; ?></a></div>
							<span><small><a href="<?php echo $user->username; ?>">@<?php echo $user->username; ?></a></small></span>
						</div><!-- in b name end-->
					</div><!-- info body name end-->
				</div><!-- info in body end-->
				<div class="info-in-footer">
					<div class="number-wrapper">
						<div class="num-box">
							<div class="num-head">
								TWEETS
							</div>
							<div class="num-body">
								<?php $getFromT->countTweets($user_id); ?>
							</div>
						</div>
						<div class="num-box">
							<div class="num-head">
								FOLLOWING
							</div>
							<div class="num-body">
								<span class="count-following"><?php echo $user->following; ?></span>
							</div>
						</div>
						<div class="num-box">
							<div class="num-head">
								FOLLOWERS
							</div>
							<div class="num-body">
								<span class="count-followers"><?php echo $user->followers; ?></span>
							</div>
						</div>
					</div><!-- mumber wrapper-->
				</div><!-- info in footer -->
			</div><!-- info inner end -->
		</div><!-- info box end-->

	<!--==TRENDS==-->
 	 <?php $getFromT->trends(); ?>
 	<!--==TRENDS==-->

	</div><!-- in left wrap-->
		</div><!-- in left end-->
		<div class="in-center">
			<div class="in-center-wrap">
				<!--TWEET WRAPPER-->
				<div class="tweet-wrap">
					<div class="tweet-inner">
						 <div class="tweet-h-left">
						 	<div class="tweet-h-img">
						 	<!-- PROFILE-IMAGE -->
						 		<img src="<?php echo $user->profileImage; ?>"/>
						 	</div>
						 </div>
						 <div class="tweet-body">
						 <form method="post" enctype="multipart/form-data">
							<textarea class="status"  maxlength="141" name="status" placeholder="Type Something here!" rows="4" cols="50"></textarea>
 						 	<div class="hash-box">
						 		<ul>
  						 		</ul>
						 	</div>
 						 </div>
						 <div class="tweet-footer">
						 	<div class="t-fo-left">
						 		<ul>
						 			<input type="file" name="file" id="file"/>
						 			<li><label for="file"><i class="fa fa-camera" aria-hidden="true"></i></label>
						 			<span class="tweet-error"><?php if(isset($error)){echo $error;}else if(isset($imgError)){echo $imgError;} ?></span>


                                        <?php echo "You have selected :" .$filter; // Displaying Selected Value ?>
                                        <select name="filter">
                                            <option value="_1977">1977</option>
                                            <option value="aden">Aden</option>
                                            <option value="brannan">Brannan</option>
                                            <option value="brooklyn">Brooklyn</option>
                                            <option value="clarendon">Clarendon</option>
                                            <option value="earlybird">Earlybird</option>
                                            <option value="gingham">Gingham</option>
                                            <option value="hudson">Hudson</option>
                                            <option value="inkwell">Inkwell</option>
                                            <option value="kelvin">Kelvin</option>
                                            <option value="lark">Lark</option>
                                            <option value="lo-Fi">Lo-Fi</option>
                                            <option value="maven">Maven</option>
                                            <option value="mayfair">Mayfair</option>
                                            <option value="moon">Moon</option>
                                            <option value="nashville">Nashville</option>
                                            <option value="perpetua">Perpetua</option>
                                            <option value="reyes">Reyes</option>
                                            <option value="rise">Rise</option>
                                            <option value="slumber">Slumber</option>
                                            <option value="stinson">Stinson</option>
                                            <option value="toaster">Toaster</option>
                                            <option value="valencia">Valencia</option>
                                            <option value="walden">Walden</option>
                                            <option value="willow">Willow</option>
                                            <option value="xpro2">X-pro II</option>
                                        </select>

						 			</li>
						 		</ul>
						 	</div>
						 	<div class="t-fo-right">
						 		<span id="count">140</span>
						 		<input type="submit" name="tweet" value="tweet"/>
				 		</form>
						 	</div>
						 </div>
					</div>
				</div><!--TWEET WRAP END-->


				<!--Tweet SHOW WRAPPER-->
				 <div class="tweets">
 				  	<?php $getFromT->tweets($user_id, 10); ?>
 				 </div>
 				<!--TWEETS SHOW WRAPPER-->
 
		    	<div class="loading-div">
		    		<img id="loader" src="assets/images/loading.svg" style="display: none;"/>
		    	</div>
				<div class="popupTweet"></div>
				<!--Tweet END WRAPER-->
		        <script type="text/javascript" src="assets/js/like.js"></script>
		        <script type="text/javascript" src="assets/js/retweet.js"></script>
		        <script type="text/javascript" src="assets/js/popuptweets.js"></script>
		        <script type="text/javascript" src="assets/js/delete.js"></script>
		        <script type="text/javascript" src="assets/js/comment.js"></script>
		        <script type="text/javascript" src="assets/js/popupForm.js"></script>
		        <script type="text/javascript" src="assets/js/fetch.js"></script>
		        <script type="text/javascript" src="assets/js/messages.js"></script>
	        	<script type="text/javascript" src="assets/js/notification.js"></script>
	        	<script type="text/javascript" src="assets/js/postMessage.js"></script>

		       
			</div><!-- in left wrap-->
		</div><!-- in center end -->

		<div class="in-right">
			<div class="in-right-wrap">

		 	<!--Who To Follow-->
		 	 <?php $getFromF->whoToFollow($user_id, $user_id); ?>
      		<!--Who To Follow-->

 			</div><!-- in left wrap-->
 			 <script type="text/javascript" src="assets/js/follow.js"></script>
		</div><!-- in right end -->

	</div><!--in full wrap end-->
 </div><!-- in wrappper ends-->
</div><!-- inner wrapper ends-->
</div><!-- ends wrapper -->
</body>

</html>
<?php 
//init.php!

	session_start();
	include 'database/connection.php';
	include 'classes/user.php';
	include 'classes/tweet.php';
	include 'classes/follow.php';
	include 'classes/message.php';
  	global $pdo;

  	$getFromU = new User($pdo);
  	$getFromT = new Tweet($pdo);
    $getFromF = new Follow($pdo);
    $getFromM = new Message($pdo);
  
define('BASE_URL', 'http://localhost:8888/twitter/');

1 Ответ

0 голосов
/ 11 мая 2018

Есть несколько способов справиться с этим. Я просто покажу ту, которую мне проще всего написать.

Для начала присвойте $filter значение по умолчанию (пустое), если оно не было выбрано.

$filter = (!empty($_POST['filter']) ? $_POST['filter'] : ''); //filter select

Затем, когда вы делаете вызов, чтобы получить и отобразить твиты, передайте выбранное значение фильтра (если оно есть).

<?php $getFromT->tweets($user_id, 10, $filter); ?>

Обновление tweets.php для принятия фильтра в качестве параметра функции tweets() (я также даю ему значение по умолчанию в определении функции на случай, если вы вызываете его из других мест).

public function tweets($user_id, $num, $filter = ''){

Наконец, используйте это переданное значение в качестве значения класса

<img src="'.$tweet->tweetImage.'" class="'.$filter.'" data-tweet="'.$tweet->tweetID.'"/>

Альтернативой может быть создание новой функции в вашем классе Tweet, которая называется что-то вроде setFilter($filter). Затем вы вызываете эту функцию в main.php, передавая выбранный фильтр, и обращаетесь к ней в вашем Tweet классе как $this->filter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...