76 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
|     defined('BASEPATH') OR exit('No direct script access allowed');
 | |
| 
 | |
|     use Coduo\PHPHumanizer\DateTimeHumanizer;
 | |
| 
 | |
|     class GeneralModel extends CI_Model
 | |
|     {
 | |
| 
 | |
|         function __construct()
 | |
|         {
 | |
|             parent::__construct();
 | |
|             $this->load->model('BlogModel', '', TRUE);
 | |
|             $this->load->model('NotificationModel', '', TRUE);
 | |
|         }
 | |
| 
 | |
|         function getBlogPosts($count)
 | |
|         {
 | |
|             $posts = $this->BlogModel->getMostRecentPosts($count);
 | |
| 
 | |
|             $return = '';
 | |
|             foreach ($posts as $result) {
 | |
|                 $date = strtotime($result['postPublishDate']);
 | |
|                 $return .= '<div class="media">';
 | |
| 
 | |
|                 if ($result['postImage'] != '') {
 | |
|                     $return .= '<img src="' . $result['postImage'] . '?w=100" style="width:75px" class="img-fluid mr-3">';
 | |
|                 }
 | |
| 
 | |
|                 $return .= '<div class="media-body">
 | |
|                                 <h6 class="my-0"><a href="#">' . $result['postTitle'] . '</a></h6>
 | |
|                                 <small class="text-white-50">' . lang('footer_published') . ' ' . DateTimeHumanizer::difference(new \DateTime(), new \DateTime("@$date"), $_SESSION['site_lang']) . '</small>
 | |
|                             </div>
 | |
|                         </div>';
 | |
|             }
 | |
|             return $return;
 | |
|         }
 | |
| 
 | |
|         function addFeedbackAnonymously($pageUrl, $message)
 | |
|         {
 | |
|             $this->addFeedback($pageUrl, $message, true, NULL, NULL);
 | |
|         }
 | |
| 
 | |
|         function addFeedback($pageUrl, $message, $anonymous, $userID, $email)
 | |
|         {
 | |
|             $this->db->query('INSERT INTO feedback (page, message, anonymous, userID, email) VALUES (?, ?, ?, ?, ?)', [$pageUrl, $message, $anonymous, $userID, $email]);
 | |
|             $this->db->cache_delete('admin', 'feedback');
 | |
| 
 | |
|             // Send notifications
 | |
|             $this->NotificationModel->rankNotificationNewFeedback($userID != NULL ? $userID : -1, 9, $pageUrl);
 | |
|         }
 | |
| 
 | |
|         function addContactMessage($email, $userID, $message) {
 | |
|             $this->db->query('INSERT INTO contact_messages (userID, userEmail, message) VALUES (?, ?, ?)', [$userID, $email, $message]);
 | |
|             $this->db->cache_delete('admin', 'contact');
 | |
| 
 | |
|             // Send notifications
 | |
|             $this->NotificationModel->rankNotificationContactMessage($userID != NULL ? $userID : -1, 8, substr($message, 0, 30));
 | |
|         }
 | |
| 
 | |
|         function getRankName($rankID)
 | |
|         {
 | |
|             $ranks = [
 | |
|                 0 => "Nutzer",
 | |
|                 1 => "Registrierter Nutzer",
 | |
|                 2 => "Premium-Nutzer",
 | |
|                 3 => "Plus-Nutzer",
 | |
|                 6 => "Autor (Blog)",
 | |
|                 7 => "Editor (Blog)",
 | |
|                 8 => "Moderator",
 | |
|                 9 => "Admin",
 | |
|                 10 => "Admin"
 | |
|             ];
 | |
|             return isset($ranks[$rankID]) ? $ranks[$rankID] : "Nutzer";
 | |
|         }
 | |
| 
 | |
|     } |