diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc index fb61023..b32f577 100644 --- a/core/includes/bootstrap.inc +++ b/core/includes/bootstrap.inc @@ -1907,6 +1907,55 @@ function request_path() { } /** + * Returns a component of the current Drupal path. + * + * When viewing a page at the path "admin/structure/types", for example, arg(0) + * returns "admin", arg(1) returns "structure", and arg(2) returns "types". + * + * Avoid use of this function where possible, as resulting code is hard to + * read. In menu callback functions, attempt to use named arguments. See the + * explanation in menu.inc for how to construct callbacks that take arguments. + * When attempting to use this function to load an element from the current + * path, e.g. loading the node on a node page, use menu_get_object() instead. + * + * @param $index + * The index of the component, where each component is separated by a '/' + * (forward-slash), and where the first component has an index of 0 (zero). + * @param $path + * A path to break into components. Defaults to the path of the current page. + * + * @return + * The component specified by $index, or NULL if the specified component was + * not found. If called without arguments, it returns an array containing all + * the components of the current path. + */ +function arg($index = NULL, $path = NULL) { + // Even though $arguments doesn't need to be resettable for any functional + // reasons (the result of explode() does not depend on any run-time + // information), it should be resettable anyway in case a module needs to + // free up the memory used by it. + // Use the advanced drupal_static() pattern, since this is called very often. + static $drupal_static_fast; + if (!isset($drupal_static_fast)) { + $drupal_static_fast['arguments'] = &drupal_static(__FUNCTION__); + } + $arguments = &$drupal_static_fast['arguments']; + + if (!isset($path)) { + $path = current_path(); + } + if (!isset($arguments[$path])) { + $arguments[$path] = explode('/', $path); + } + if (!isset($index)) { + return $arguments[$path]; + } + if (isset($arguments[$path][$index])) { + return $arguments[$path][$index]; + } +} + +/** * Initializes and returns the class loader. * * The class loader is responsible for lazy-loading all PSR-0 compatible diff --git a/core/includes/path.inc b/core/includes/path.inc index 94aeeb0..e4674f5 100644 --- a/core/includes/path.inc +++ b/core/includes/path.inc @@ -86,55 +86,6 @@ function current_path() { } /** - * Returns a component of the current Drupal path. - * - * When viewing a page at the path "admin/structure/types", for example, arg(0) - * returns "admin", arg(1) returns "structure", and arg(2) returns "types". - * - * Avoid use of this function where possible, as resulting code is hard to - * read. In menu callback functions, attempt to use named arguments. See the - * explanation in menu.inc for how to construct callbacks that take arguments. - * When attempting to use this function to load an element from the current - * path, e.g. loading the node on a node page, use menu_get_object() instead. - * - * @param $index - * The index of the component, where each component is separated by a '/' - * (forward-slash), and where the first component has an index of 0 (zero). - * @param $path - * A path to break into components. Defaults to the path of the current page. - * - * @return - * The component specified by $index, or NULL if the specified component was - * not found. If called without arguments, it returns an array containing all - * the components of the current path. - */ -function arg($index = NULL, $path = NULL) { - // Even though $arguments doesn't need to be resettable for any functional - // reasons (the result of explode() does not depend on any run-time - // information), it should be resettable anyway in case a module needs to - // free up the memory used by it. - // Use the advanced drupal_static() pattern, since this is called very often. - static $drupal_static_fast; - if (!isset($drupal_static_fast)) { - $drupal_static_fast['arguments'] = &drupal_static(__FUNCTION__); - } - $arguments = &$drupal_static_fast['arguments']; - - if (!isset($path)) { - $path = current_path(); - } - if (!isset($arguments[$path])) { - $arguments[$path] = explode('/', $path); - } - if (!isset($index)) { - return $arguments[$path]; - } - if (isset($arguments[$path][$index])) { - return $arguments[$path][$index]; - } -} - -/** * Determines whether a path is in the administrative section of the site. * * By default, paths are considered to be non-administrative. If a path does