403Webshell
Server IP : 64.202.187.69  /  Your IP : 216.73.217.74
Web Server : Apache
System : Linux 69.187.202.64.host.secureserver.net 3.10.0-1160.144.1.el7.tuxcare.els6.x86_64 #1 SMP Fri May 29 16:22:24 UTC 2026 x86_64
User : transmarket ( 1001)
PHP Version : 7.2.34
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/transmarket/translator/controllers/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/transmarket/translator/controllers/functions.winning_suggestion_voting_credits.php
<?php

	require_once('class.db.php');

	class Winning_Suggestion_Voting_Credits extends DB
	{			
		
		//Get all success suggestion ids by sentence id
		public function getSuccessSuggestionIdsBySentenceId( $sentence_id ) {
			
			$sqlSuccessSuggestions = 'SELECT * FROM `sentence_suggestion_map` WHERE sentence_id = ' . $sentence_id . ' AND is_locked = 1 AND is_success = 1';
			$resultSuccessSuggestions = $this->con->query($sqlSuccessSuggestions);			
			
			if ($resultSuccessSuggestions->num_rows > 0) {
				while ($row_success_suggestions = $resultSuccessSuggestions->fetch_object()) {
					$success_suggestion_id_arr[]=$row_success_suggestions->id;
				}
			}

			return $success_suggestion_id_arr;
			
		}
		
		//get success suggestion id and it's vote count by suggestion Id
		public function getSuccessSuggestionIdAndVoteCountBySuggestionId( $suggestion_id ) {
			$sqlU = 'SELECT * FROM `sentence_suggestion_voting_map` WHERE voted_translation_id = ' . $suggestion_id. ' AND is_success = 1' ;
			$resultU = $this->con->query($sqlU);
			$total_votes = $resultU->num_rows;
			$suggestion_id_and_count_arr = array();
			
			//suggestion id and it's count			
			$suggestion_id_and_count_arr[$suggestion_id] = $total_votes;
			return $suggestion_id_and_count_arr;			
		}
		
		//Get winning sentence suggestion id by passing suggestion ids and it's counts array
		public function getWinningSuggestionId( $suggestion_id_and_count_arr ) {
			//highest votes suggestion id
			$winning_suggestion_id = array_search( max($suggestion_id_and_count_arr), $suggestion_id_and_count_arr );
			return $winning_suggestion_id;
		}
		
		//Get winning suggestion's user id by winning sentence id
		public function getWinningSuggestionUserId( $winning_suggestion_id ) {
			$sqlWinningSuggestion = 'SELECT * FROM `sentence_suggestion_map` WHERE id = ' . $winning_suggestion_id . ' AND is_locked = 1 AND is_success = 1';
			$resultWinningSuggestion = $this->con->query($sqlWinningSuggestion);
			while ($row_winning_suggestion = $resultWinningSuggestion->fetch_object()) {
				$winning_suggestion_user_id = $row_winning_suggestion->user_id;
			}
			return $winning_suggestion_user_id;
		}
		
		//Get winning suggestion's voted user's ids by winning suggestion id
		public function getWinningSuggestionVotedUserIds( $winning_suggestion_id ) {
			
			$sqlU = 'SELECT * FROM `sentence_suggestion_voting_map` WHERE voted_translation_id = ' . $winning_suggestion_id. ' AND is_success = 1' ;
			$resultU = $this->con->query($sqlU);
			$total_votes = $resultU->num_rows;
			$voted_user_ids_and_suggestion_ids_arr = array();
			while ($row_vote = $resultU->fetch_object()) {				
				$voted_user_ids_and_suggestion_ids_arr[] = $row_vote->user_id;
			}
			
			return $voted_user_ids_and_suggestion_ids_arr;
			
		}			

		//get Winning Suggestion Id By Sentence Id
		public function getWinningSuggestionIdBySentneceId( $sentence_id ) {
			
			$success_suggestion_id_arr = $this->getSuccessSuggestionIdsBySentenceId( $sentence_id );			
			
			if( $success_suggestion_id_arr ) {	
				
				foreach( $success_suggestion_id_arr as $success_suggestion_id ) {
					
					$suggestion_id_and_count_arr = $this->getSuccessSuggestionIdAndVoteCountBySuggestionId( $success_suggestion_id );
					foreach( $suggestion_id_and_count_arr as $key_suggestion_id => $votes_count ) {
						$all_suggestion_ids_and_counts_arr[$key_suggestion_id] = $votes_count;
					}
				}	
				
				//echo "success suggestion ids and count: ";
				//print_r( $all_suggestion_ids_and_counts_arr );			
				
				$winning_suggestion_id = $this->getWinningSuggestionId( $all_suggestion_ids_and_counts_arr );				
			}			
			
			return $winning_suggestion_id;		
			
		}
		
		//Get settings row for default winning credit tmn values
		public function getSettingsRow() {
			$sqlSettings = 'SELECT * FROM `settings` ';
			$resultSettings = $this->con->query($sqlSettings);
			$rowSettings = $resultSettings->fetch_assoc();
			return $rowSettings;
		}
		
		//Insert into winning suggestion user credits
		public function insertIntoWinningSuggestionUserCredits($sentence_id,$winning_suggestion_id,$winning_suggetion_user_id,$winning_suggestion_tmn) {
			$sql_insert = "INSERT INTO `winning_suggestion_voting_credits` (sentence_id,suggestion_id,user_id,winning_credits,credit_purpose) VALUES ({$sentence_id},{$winning_suggestion_id},{$winning_suggetion_user_id},{$winning_suggestion_tmn},1) ";			
			$result_insert = $this->con->query($sql_insert);
			$last_inserted_id = $this->con->insert_id;
			return $last_inserted_id;
		}
		
		//Insert into winning suggestion voted user credits 
		public function insertIntoWinningSuggestionVotedUserCredits($sentence_id,$suggestion_id,$user_id,$winning_credits) {
			$sql_insert = "INSERT INTO `winning_suggestion_voting_credits` (sentence_id,suggestion_id,user_id,winning_credits,credit_purpose) VALUES ({$sentence_id},{$suggestion_id},{$user_id},{$winning_credits},2) ";			
			$result_insert = $this->con->query($sql_insert);
			$last_inserted_id = $this->con->insert_id;
			return $last_inserted_id;
		}
		
		//get winning suggestion voting credits num of rows
		public function getWinningSuggestionVotingCreditsBySentenceId( $sentence_id ) {
			
			$sqlSentenceWin = 'SELECT sentence_id FROM `winning_suggestion_voting_credits` WHERE sentence_id = ' . $sentence_id . ' LIMIT 1';
			$resultSentenceWin = $this->con->query($sqlSentenceWin);			
			
			$sentence_win_rows = $resultSentenceWin->num_rows;

			return $sentence_win_rows;
		}
		
		
		//Process winning suggestion user credits and winning suggestion voted user id credits by sentence id
		public function processWinningSuggestionVotingCreditsBySentenceId( $sentence_id ) {
			
			//check if sentence has already been win record
			$sentence_win_rows = $this->getWinningSuggestionVotingCreditsBySentenceId( $sentence_id );
			
			//get self assessment test sentences language id by sentence id
			$language_id = $this->getLanguageIdBySentenceId( $sentence_id );
			
			if( $sentence_win_rows == 0 ) {

				//Get settings row for default winning credit tmn values
				//$settings_row = $this->getSettingsRow();
				
				//Get tmn values by language wise for winning suggestion & voting credit tmn 
				$tmn_row = $this->getLanguageTmnRow( $language_id );

				$winning_suggestion_tmn = $tmn_row['winning_suggestion_tmn'];
				$voting_suggestion_tmn = $tmn_row['voting_suggestion_tmn'];			
				
				//get winning suggestion id (suggestion id which has highest votes) by sentence Id
				$winning_suggestion_id = $this->getWinningSuggestionIdBySentneceId($sentence_id);				

				//Get winning suggestion's user id by winning suggestion id
				$winning_suggetion_user_id = $this->getWinningSuggestionUserId( $winning_suggestion_id );
				
				//Give credit to winning suggestion user
				if( $winning_suggetion_user_id ) {	
				
					$winning_suggestion_tbl_id = $this->insertIntoWinningSuggestionUserCredits($sentence_id,$winning_suggestion_id,$winning_suggetion_user_id,$winning_suggestion_tmn);
					
					//add entry into the tmn transactions & update translator tmn balance					
					$this->insertIntoTranslatorTmnTransactionsCreditEntry( $winning_suggetion_user_id, "Reputation Winning Suggestion", $winning_suggestion_tbl_id , "winning_suggestion_voting_credits", $winning_suggestion_tmn );
					
				}

				//Get winning suggestion's voted user's ids by winning suggestion id
				$winning_suggestion_voted_user_ids_arr = $this->getWinningSuggestionVotedUserIds( $winning_suggestion_id );

				if (count($winning_suggestion_voted_user_ids_arr) > 0) {
					
					//Calculate per user tmn credits
					$tmn_per_user = round((float) $voting_suggestion_tmn / count($winning_suggestion_voted_user_ids_arr), 3);
					
					//Give credit to winning suggestion voted users
					foreach($winning_suggestion_voted_user_ids_arr as $winning_suggestion_voted_user_id) {	
					
						$winning_voted_on_suggestion_tbl_id = $this->insertIntoWinningSuggestionVotedUserCredits($sentence_id,$winning_suggestion_id,$winning_suggestion_voted_user_id,$tmn_per_user);
						
						//add entry into the tmn transactions & update translator tmn balance					
						$this->insertIntoTranslatorTmnTransactionsCreditEntry( $winning_suggestion_voted_user_id, "Reputation Voted on Winning Suggestion", $winning_voted_on_suggestion_tbl_id , "winning_suggestion_voting_credits", $tmn_per_user );
						
					}
					
				}
			
			}
			
		}

		
		//Get sentence ids to decide/process winning suggestion, voting and credits
		public function getSentenceIdsToDoWinningProcess() {
			
			$sql_get_sentence_ids = 'SELECT id FROM `tbl_sentence` WHERE voting_closed_at IS NOT NULL AND id NOT IN( SELECT sentence_id FROM `winning_suggestion_voting_credits` ) order by id' ;
			$result_get_sentence_ids = $this->con->query($sql_get_sentence_ids);			
			$sentence_ids_arr = array();
			while ($row = $result_get_sentence_ids->fetch_object()) {				
				$sentence_ids_arr[] = $row->id;
			}
			
			return $sentence_ids_arr;
			
		}	

		//get sentence language id by sentence id
		public function getLanguageIdBySentenceId( $sentence_id ) {
			$sql_get_sentence_language_id = "SELECT category_id FROM `tbl_sentence` WHERE id = " . $sentence_id;
			$result_sentence_language_id = $this->con->query( $sql_get_sentence_language_id );
			while ($row_sentence_language_id = $result_sentence_language_id->fetch_object()) {
				$language_id = $row_sentence_language_id->category_id;
			}
			return $language_id;
		}
		
		//Get settings row for default winning credit tmn values
		public function getLanguageTmnRow( $language_id ) {
			$sql_get_tmn = 'SELECT * FROM `languages` WHERE id = ' . $language_id;
			$result_tmn = $this->con->query($sql_get_tmn);
			$row_tmn = $result_tmn->fetch_assoc();
			return $row_tmn;
		}
		
		//get Translator tmn balance by user id
		public function getTranslatorTmnBalance( $user_id ) {
			$tmn_balance = 0;
			$sql_tmn_balance = "SELECT tmn_balance FROM translator_tmn_transactions WHERE user_id = " . $user_id . " ORDER BY id DESC LIMIT 1";
			$result_tmn_balance = $this->con->query( $sql_tmn_balance );				
			if( $result_tmn_balance->num_rows > 0 ) {
				while( $row_tmn_balance = $result_tmn_balance->fetch_object() ) {
					$tmn_balance = $row_tmn_balance->tmn_balance;
				}
			}
			return $tmn_balance;
		}
		
		//credit entry & update balance
		public function insertIntoTranslatorTmnTransactionsCreditEntry( $user_id, $trans_description, $reference_tableid, $reference_tablename, $winning_tmn_to_credit ) {
			
			$current_tmn_balance = $this->getTranslatorTmnBalance( $user_id );
			
			$updated_tmn_balance = $current_tmn_balance + $winning_tmn_to_credit;
			
			$sqlInsert = 'INSERT INTO `translator_tmn_transactions`(`user_id`, `trans_description`, `reference_tableid`, `reference_tablename`, `tmn_credit`, `tmn_balance`) VALUES '
					. '(' . $user_id . ', "' . $trans_description  . '",' . $reference_tableid . ', "' . $reference_tablename  . '", ' . $winning_tmn_to_credit . ',' . $updated_tmn_balance . ' )';			
					$resultInsert = $this->con->query($sqlInsert);
					
		}		
		
	}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit