HEX
Server: Apache
System: Linux scp1.abinfocom.com 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
User: confeduphaar (1010)
PHP: 8.1.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/confeduphaar/backip-old-files/components/com_jdbuilder/router.php
<?php

/**
 * @package    JD Builder
 * @author     Team Joomdev <info@joomdev.com>
 * @copyright  2020 www.joomdev.com
 * @license    GNU General Public License version 2 or later; see LICENSE.txt
 */
// No direct access
defined('_JEXEC') or die;

JLoader::registerPrefix('Jdbuilder', JPATH_SITE . '/components/com_jdbuilder/');

/**
 * Class JdbuilderRouter
 *
 * @since  3.3
 */
class JdbuilderRouter extends JComponentRouterBase {

   /**
    * Build method for URLs
    * This method is meant to transform the query parameters into a more human
    * readable form. It is only executed when SEF mode is switched on.
    *
    * @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) {
      $segments = array();
      $view = null;

      if (isset($query['task'])) {
         $taskParts = explode('.', $query['task']);
         $segments[] = implode('/', $taskParts);
         $view = $taskParts[0];
         unset($query['task']);
      }

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

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

      if (isset($query['id'])) {
         if ($view !== null) {
            $segments[] = $query['id'];
         } else {
            $segments[] = $query['id'];
         }

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

      return $segments;
   }

   /**
    * Parse method for URLs
    * This method is meant to transform the human readable URL back into
    * query parameters. It is only executed when SEF mode is switched on.
    *
    * @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) {
      $vars = array();

      // View is always the first element of the array
      $vars['view'] = array_shift($segments);
      $model = JdbuilderHelpersJdbuilder::getModel($vars['view']);

      while (!empty($segments)) {
         $segment = array_pop($segments);

         // If it's the ID, let's put on the request
         if (is_numeric($segment)) {
            $vars['id'] = $segment;
         } else {
            $vars['task'] = $vars['view'] . '.' . $segment;
         }
      }

      return $vars;
   }

}