AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.111
Web Server : Apache
System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : coopiak ( 151928)
PHP Version : 8.3.23
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/coopiak/amisdesseniors-fr/nimes/components/com_rsfeedback/models/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/amisdesseniors-fr/nimes/components/com_rsfeedback/models/category.php
<?php
/**
* @package RSFeedback!
* @copyright (C) 2010-2018 www.rsjoomla.com
* @license GPL, http://www.gnu.org/copyleft/gpl.html
*/

defined('_JEXEC') or die('Restricted access');

use Joomla\CMS\MVC\Model\BaseDatabaseModel;
use Joomla\CMS\MVC\Model\AdminModel;
use Joomla\CMS\Mail\MailHelper;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Table\Table;
use Joomla\CMS\Factory;

class RSFeedbackModelCategory extends AdminModel
{
	protected $_context = 'com_rsfeedback.category';

	public function getTable($type = 'Category', $prefix = 'RSFeedbackTable', $config = array()) {
		return Table::getInstance($type, $prefix, $config);
	}

	public function getItem($pk = null) {
		$app		= Factory::getApplication();
		$db 		= Factory::getDbo();
		$query		= $db->getQuery(true);
		$params 	= $app->getParams();
		$pk			= ($pk ? $pk : $app->input->get('id', 0, 'int'));

		$item 	= parent::getItem($pk);
		
		$columns[] = 'f.*';
		$columns[] = $db->qn('s.name').' as status_name';
		$columns[] = $db->qn('s.default').' as status_default';
		$columns[] = $db->qn('u.username');
		$columns[] = 'COALESCE(SUM('.$db->qn('uv.number_points').'),0) as nr_votes';
		$columns[] = $db->qn('c.max_votes_allowed');
		$columns[] = $db->qn('c.name').' as category_name';
		$columns = implode(',',$columns);

		$query->select($columns)
			  ->from($db->qn('#__rsfeedback_feedbacks').' f')
			  ->join('left', $db->qn('#__rsfeedback_statuses').' s ON '.$db->qn('s.id').' = '.$db->qn('f.status_id'))
			  ->join('left', $db->qn('#__rsfeedback_user_votes').' uv ON '.$db->qn('uv.feedback_id').' = '.$db->qn('f.id'))
			  ->join('left', $db->qn('#__rsfeedback_categories').' c ON '.$db->qn('c.id').' = '.$db->qn('f.cat_id'))
			  ->join('left', $db->qn('#__users').' u ON '.$db->qn('u.id').' = '.$db->qn('f.user_id'));

		$query->where($db->qn('f.published') .' = '.$db->q('1'));

		// search filter 
		if ($search = $app->input->get('search', '', 'string')) 
			$query->where(" (".$db->qn("f.title")." LIKE ".$db->q("%".$search."%")." OR ".$db->qn("f.text")." LIKE ".$db->q("%".$search."%").") ");

		$query->where($db->qn('f.cat_id').' = '.$db->q($item->id));
		$query->group($db->qn('f.id'));
		$query->order($db->qn('f.id').' DESC');
		$db->setQuery($query);

		$item->children = $db->loadObjectList();

		return $item;
	}

	protected function populateState($ordering = 'f.id', $direction = 'DESC') {
		$app = Factory::getApplication();

		// Load the parameters.
		$params = $app->getParams();
		$this->setState('params', $params);

		// Search filter 
		$search = $app->input->get('search', '', 'string');
		$this->setState('filter.search', $search);
	}

	public function getForm($data = array(), $loadData = true) {
		$form = $this->loadForm('com_rsfeedback.category', 'category', array('control' => 'jform', 'load_data' => $loadData));

		if (empty($form))
			return false;

		return $form;
	}

	protected function loadFormData() {
		// Check the session for previously entered form data.
		$app  = Factory::getApplication();
		$data = $app->getUserState('com_rsfeedback.edit.category.data', array());
		$id	  = $app->input->get('id', 0, 'int');

		if (!empty($id))
			$data = $this->getItem();

		return $data;
	}

	protected function canDelete($record) {
		return (bool) RSFeedbackHelper::getPermissions('category_delete');
	}
	
	public function delete(&$pk) {
		$model	= BaseDatabaseModel::getInstance('feedbacks', 'RSFeedbackModel');
		$db		= Factory::getDbo();
		$query	= $db->getQuery(true);

		$query->select($db->qn('id'))->from($db->qn('#__rsfeedback_feedbacks'))->where($db->qn('cat_id').' = '.$db->q($pk));
		$db->setQuery($query);
		$category_feedbacks = $db->loadObjectList();

		if (!empty($category_feedbacks)) {
			foreach ($category_feedbacks as $feedback) 
				$model->delete($feedback->id);
		}

		return parent::delete($pk);
	}

	public function save($data) {
		$permissions = RSFeedbackHelper::getPermissions();

		// if category_moderation is on, set published=0 for new categories before saving
		if ($permissions['category_moderation']) 
			$data['published'] = 0;// set the category state to unpublish

		// send moderation emails if save returned true
		if (parent::save($data)) {
			if ($permissions['category_moderation']) {
				$config		 = RSFeedbackHelper::getConfig();
				$jconfig 	 = Factory::getConfig();
				$user		 = Factory::getUser();
			
				// send mail to the category_moderation_emails in the config
				$emails = $config->category_moderation_emails;
				$emails = str_replace("\r", "", $emails);

				if (!empty($emails)) {
					$from_email	= $jconfig->get('mailfrom');
					$from_name	= $jconfig->get('fromname');

					if ($data['id'] == 0) {
						$subject	= Text::sprintf('COM_RSFEEDBACK_SUBJECT_REQUIRE_MODERATION_CATEGORY',$user->name);
						$body		= Text::sprintf('COM_RSFEEDBACK_BODY_REQUIRE_MODERATION_CATEGORY', $user->name, $data['name']);
					} else {
						$subject	= Text::sprintf('COM_RSFEEDBACK_SUBJECT_REQUIRE_MODERATION_UPDATED_CATEGORY',$user->name);
						$body		= Text::sprintf('COM_RSFEEDBACK_BODY_REQUIRE_MODERATION_UPDATED_CATEGORY', $user->name, $data['name']);
					}

					$emails = explode("\n",$emails);
					foreach ($emails as $email) 
						if (MailHelper::isEmailAddress(trim($email))) 
							Factory::getMailer()->sendMail($from_email, $from_name, $email, $subject, $body, 1);
				}
			}
			return true;
		}
	}
}

Anon7 - 2022
AnonSec Team