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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

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

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

use Joomla\CMS\Component\Router\RouterViewConfiguration;
use Joomla\CMS\Component\Router\Rules\StandardRules;
use Joomla\CMS\Component\Router\Rules\NomenuRules;
use Joomla\CMS\Component\Router\Rules\MenuRules;
use Joomla\CMS\Application\ApplicationHelper;
use Joomla\CMS\Component\Router\RouterView;
use Joomla\CMS\Language\Text;
use Joomla\CMS\Version;
use Joomla\CMS\Factory;

class RSFeedbackRouter extends RouterView {
	
	public function __construct($app = null, $menu = null) {
		$rsfeedback = new RouterViewConfiguration('rsfeedback');
		$this->registerView($rsfeedback);

		parent::__construct($app, $menu);

		$this->attachRule(new MenuRules($this));
		$this->attachRule(new StandardRules($this));
		$this->attachRule(new NomenuRules($this));
	}
	
	/**
	 * Build the route for the com_content component
	 *
	 * @param   array  &$query  An array of URL arguments
	 *
	 * @return  array  The URL arguments to use to assemble the subsequent URL.
	 *
	 * @since   3.3
	 */
	public function build(&$query) {
		$this->loadLanguage();
		
		$segments	= array();
		$app  		= Factory::getApplication();
		$menu 		= $app->getMenu();
		$db   		= Factory::getDbo();
		$dbquery	= $db->getQuery(true);

		if (empty($query['Itemid'])) {
			$menuItem = $menu->getActive();
			$menuItemGiven = false;
			
			if (isset($menuItem->id) && $menuItem->home == 1) {
				$query['Itemid'] = $menuItem->id;
				$menuItemGiven = true;
			}
		} else {
			$menuItem = $menu->getItem($query['Itemid']);
			$menuItemGiven = true;
		}

		if ($menuItemGiven && isset($menuItem) && $menuItem->component != 'com_rsfeedback') {
			$menuItemGiven = false;
			unset($query['Itemid']);
		}

		if (isset($query['view'])) {
			$view = $query['view'];
			unset($query['view']);
		}

		if (isset($query['layout'])) {
			$layout = $query['layout'];
			unset($query['layout']);
		} else {
			$layout = 'default';
		}

		if (isset($menuItem, $view) && $menuItem->component == 'com_rsfeedback' && $menuItem->query['view'] == $view) {
			$hasView = true;
		}

		if (isset($query['task'])) {
			switch ($query['task']) {
				case 'feedback.add':
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK');
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_ADD');

					if (isset($query['cat_id'])) {
						$segments[] = $query['cat_id'];
						unset($query['cat_id']);
					}
				break;
				
				case 'feedback.edit':
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK');
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_EDIT');
					$segments[] = $query['id'];

					unset($query['id']);
				break;
				
				case 'feedbacks.delete':
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK');
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_DELETE');
					$segments[] = $query['id'];
					if ( isset($query['cat_id']) ) {
						$segments[] = $query['cat_id'];
						unset($query['cat_id']);
					}

					unset($query['id']);
				break;
				
				case 'feedbacks.deletevotes':
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_DELETE_VOTES');
				break;
				
				case 'category.add':
				case 'category.edit':
					if ($query['task'] == 'category.edit') {
						$segments[] = Text::_('COM_RSFEEDBACK_SEF_CATEGORY_EDIT');
						
						if (isset($query['id'])) 
							$segments[] = (int) $query['id'];

					} else 
						$segments[] = Text::_('COM_RSFEEDBACK_SEF_CATEGORY_ADD');
					
					unset($query['id']);
				break;
				
				case 'category.delete':
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_CATEGORY_DELETE');
					$segments[] = $query['id'];

					unset($query['id']);
				break;
				
				case 'captcha':
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_CAPTCHA');
				break;
				
				case 'comment.save':
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_SAVECOMMENT');
				break;
				
				case 'removedata.process':
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_REMOVE_DATA_PROCESS');
				break;
			}

			unset($query['task']);
		}

		if (isset($view)) {
			switch ($view) {
				case 'feedbacks':
					if (empty($hasView)) {
						$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_VIEW');    
					}

					if (isset($query['cat_id'])) {
						$ShowFromCategories =  array_map('intval', ($menuItem ? $menuItem->getParams()->get('ShowFromCategories', array()) : array()));

						if (!$menuItemGiven || !isset($menuItem->query['view']) || $menuItem->query['view'] != $view || !in_array((int) $query['cat_id'], $ShowFromCategories) || count($ShowFromCategories) != 1) {
							// Get category slug
							$dbquery->clear();
							$dbquery->select($db->qn('name'))->from('#__rsfeedback_categories')->where('id = ' . (int) $query['cat_id']);
							
							$db->setQuery($dbquery);
							$catname = ApplicationHelper::stringURLSafe($db->loadResult());

							$segments[] = Text::_('COM_RSFEEDBACK_SEF_CATEGORY_VIEW');
							$segments[] = $query['cat_id']."-".$catname;
						} else if (!$menuItemGiven || !isset($menuItem->query['view']) || $menuItem->query['view'] != $view || ( count($ShowFromCategories) == 1 && $query['cat_id'] == $ShowFromCategories[0])) {
							$dbquery->clear();
							$dbquery->select($db->qn('name'))->from('#__rsfeedback_categories')->where('id = ' . (int) $ShowFromCategories[0]);
							$db->setQuery($dbquery);

							$catname = ApplicationHelper::stringURLSafe($db->loadResult());
							$segments[] = Text::_('COM_RSFEEDBACK_SEF_CATEGORY_VIEW');
							$segments[] = $query['cat_id']."-".$catname;
						}

						unset($query['cat_id']);
					}

					if (isset($query['search'])) {
						$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_SEARCH');
						$segments[] = $query['search'];

						unset($query['search']);
					}
					
					if (isset($query['action']) && $query['action'] == 'votes') {
						$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_VOTED');
						unset($query['action']);
					}
				break;
				
				case 'feedback':
					if (empty($hasView)) {
						$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK');
					}
					
					if ($layout == 'edit') {
						if (isset($query['id'])) {
							$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_EDIT');
							$segments[] = $query['id'];
						} else {
							$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_ADD');
							if (isset($query['cat_id'])) {
								$segments[] = (int) $query['cat_id'];
							}
						}
					} elseif ($layout == 'default_form_flag') {
						$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_FLAG');
						$segments[] = $query['id'];

						if (isset($query['return'])) {
							$segments[] = $query['return'];
						}
					} else {
						if (!$menuItemGiven || !isset($menuItem->query['view']) || $menuItem->query['view'] != $view) {
							$feedback_id = isset($query['id']) && !empty($query['id']) ? $query['id'] : $menuItem->getParams()->get('feedback_id',0);

							$select = array($db->qn('f.id'), $db->qn('f.title'));
							$dbquery->clear()->select($select)
								->from($db->qn('#__rsfeedback_feedbacks', 'f'))
								->where($db->qn('f.id') . ' = ' . $db->q( (int) $feedback_id ) );

							$db->setQuery($dbquery);
							$feedback = $db->loadObject();
							if ($feedback)
							{
								$feedback->title 	= ApplicationHelper::stringURLSafe($feedback->title);

								if ($menuItemGiven && isset($menuItem->query['view']) && $menuItem->query['view'] == 'feedbacks') {
									if (empty($hasView)) {
										array_pop($segments);
									}

									if (isset($query['id'])) {
										$segments[] = $query['id'].'-'.$feedback->title;	
									}
								} else {
									$segments[] = Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_VIEW');

									if (isset($query['id'])) {
										$segments[] = $query['id'].'-'.$feedback->title;
									}
								}
							}
						}
					}

					unset($query['id']);
				break;
				
				case 'categories':
					$segments[] = Text::_('COM_RSFEEDBACK_SEF_CATEGORIES_VIEW');
				break;
				
				case 'category':
					if ($layout == 'edit') {
						if (isset($query['id']) && (int) $query['id'] > 0) {
							$segments[] = Text::_('COM_RSFEEDBACK_SEF_CATEGORY_EDIT');
							$segments[] = (int) $query['id'];
							unset($query['id']);
						} else {
							$segments[] = Text::_('COM_RSFEEDBACK_SEF_CATEGORY_ADD');
						}
					}
				break;
				
				case 'removedata':
					if (isset($layout) && $layout == 'success') {
						$segments[] = Text::_('COM_RSFEEDBACK_SEF_REMOVE_DATA_SUCCESS');
					} else {
						$segments[] = Text::_('COM_RSFEEDBACK_SEF_REMOVE_DATA');
					}
				break;
			}
		}
		
		return $segments;
	}
	
	/**
	 * Parse the segments of a URL.
	 *
	 * @param   array  &$segments  The segments of the URL to parse.
	 *
	 * @return  array  The URL attributes to be used by the application.
	 *
	 * @since   3.3
	 */
	public function parse(&$segments) {
		$this->loadLanguage();
		
		$vars	= array();
		$app	= Factory::getApplication();
		$menu	= $app->getMenu();
		$item	= $menu->getActive();
		$query	= array();

		foreach ($segments as $i => $segment) {
			$segments[$i] = str_replace(':', '-', $segment);
		}
		
		if ($item && $item->component == 'com_rsfeedback' && isset($item->query['view'])) {
			
			switch ($item->query['view']) {
				case 'feedbacks':
					if (in_array($segments[0], 
							array(
								Text::_('COM_RSFEEDBACK_SEF_CATEGORY_VIEW'), 
								Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_SEARCH'),
								Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_VOTED'),
								Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_DELETE_VOTES')
							)
						)) {
						array_unshift( $segments, Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_VIEW') );
					}
				break;
				
				case 'feedback' :
					if (in_array($segments[0], array(
						Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_VIEW'),
						Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_ADD'),
						Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_EDIT'),
						Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_DELETE'),
						Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_FLAG')
					))) {
						array_unshift( $segments, Text::_('COM_RSFEEDBACK_SEF_FEEDBACK') );
					}
				break;
			}
		}
		
		switch ($segments[0]) {
			case Text::_('COM_RSFEEDBACK_SEF_CAPTCHA'):
				$query['task'] = 'captcha';
			break;

			case Text::_('COM_RSFEEDBACK_SEF_SAVECOMMENT'):
				$query['task'] = 'comment.save';
			break;
			
			case Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_DELETE_VOTES'):
				$query['task'] = 'feedbacks.deletevotes';
			break;

			case Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_VIEW'):
				$query['view'] = 'feedbacks';

				if (isset($segments[1]) && $segments[1] == Text::_('COM_RSFEEDBACK_SEF_CATEGORY_VIEW') && isset($segments[2])) {
					$query['cat_id'] = (int) $segments[2];
				}
				
				if (in_array(Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_SEARCH'), $segments)) {
					$search_key 	 = array_search( Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_SEARCH'), $segments );
					$search_word_key = $search_key+1;
					$query['search'] = '';
					
					if (isset($segments[$search_word_key])) {
						$query['search'] = $segments[$search_word_key];
					}
				}
				
				if (in_array(Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_VOTED'), $segments)) {
					$query['action'] = 'votes';
				}

				if (in_array(Text::_('COM_RSFEEDBACK_SEF_FEEDBACKS_DELETE_VOTES'), $segments)) {
					$query['task'] = 'feedbacks.deletevotes';
				}
			break;

			default:
			case Text::_('COM_RSFEEDBACK_SEF_FEEDBACK'):
				$query['view'] 	 = 'feedback';
				
				if (isset($segments[1])) {
					if ($segments[1] == Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_ADD')) {
						$query['view'] 	 = 'feedback';
						$query['layout'] = 'edit';
						$query['id'] 	 = 0;
						
						if ( isset($segments[2]) && is_numeric($segments[2]) ) {
							$query['cat_id'] = (int) $segments[2];
						}
					} else if ($segments[1] == Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_EDIT')) {
						$query['view'] 	 = 'feedback';
						$query['layout'] = 'edit';
						
						if (is_numeric($segments[2])) {
							$query['id'] = (int) $segments[2];
						}
					} else if ($segments[1] == Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_DELETE')) {
						$query['view'] = 'feedbacks';
						$query['task'] = 'feedbacks.delete';

						if (isset($segments[2])) {
							$query['id']   	 = $segments[2];
						}

						if (isset($segments[3])) {
							$query['cat_id'] = $segments[3];
						}
					} else if ($segments[1] == Text::_('COM_RSFEEDBACK_SEF_FEEDBACK_FLAG')) {
						$query['view'] = 'feedback';
						$query['layout'] = 'default_form_flag';

						if (is_numeric($segments[2])) {
							$query['id'] = (int) $segments[2];
						}

						if (isset($segments[3])) {
							$query['return'] = (string) $segments[3];
						}
					} else {
						$query['layout'] = 'default';
						
						if (isset($segments[2])) {
							$query['id'] = (int)$segments[2];	
						}
					}
				} else {
					$query['layout'] 	= 'default';
					$query['id'] 		= (int) $segments[0];
				}
			break;
			
			case Text::_('COM_RSFEEDBACK_SEF_CATEGORIES_VIEW'):
				$query['view'] 	 = 'categories';
			break;
			
			case Text::_('COM_RSFEEDBACK_SEF_CATEGORY_ADD'):
				$query['view'] 	 = 'category';
				$query['layout'] = 'edit';
				$query['id'] 	 = 0;
			break;
			
			case Text::_('COM_RSFEEDBACK_SEF_CATEGORY_EDIT'):
				$query['view'] 	 = 'category';
				$query['layout'] = 'edit';
				$query['id'] 	 = (int) $segments[1];
			break;
			
			case Text::_('COM_RSFEEDBACK_SEF_CATEGORY_DELETE'):
				$query['view'] = 'categories';
				$query['task'] = 'category.delete';
				if (isset($segments[1]))
					$query['id']   	 = $segments[1];

			break;
			
			case Text::_('COM_RSFEEDBACK_SEF_REMOVE_DATA'):
				$query['view'] = 'removedata';
				$query['layout'] = 'default';
			break;

			case Text::_('COM_RSFEEDBACK_SEF_REMOVE_DATA_SUCCESS'):
				$query['view'] = 'removedata';
				$query['layout'] = 'success';
			break;

			case Text::_('COM_RSFEEDBACK_SEF_REMOVE_DATA_PROCESS'):
				$query['task'] = 'removedata.process';
			break;
		}
		
		// Joomla 4.x compatibility 
		$jversion = new Version();
		if ($jversion->isCompatible('4')) {
			$segments = array();
		}
		
		return $query;
	}
	
	protected function loadLanguage() {
		$lang = Factory::getLanguage();
		$lang->load('com_rsfeedback', JPATH_SITE, 'en-GB', true);
		$lang->load('com_rsfeedback', JPATH_SITE, $lang->getDefault(), true );
		$lang->load('com_rsfeedback', JPATH_SITE, null, true);
	}
}

Anon7 - 2022
AnonSec Team