erknrio of Programming Guanches
10/21/2015 - 11:54 AM

Obtener los segmentos URI.

Obtener los segmentos URI.

/**
 * Devuelve el segmento URI de la URL proporcionada
 * @param {Number} param_position Parametro que se desea obtener, puede ser false para obtener todos los parametros
 * @param {String} main_name      Texto a partir del cual empiezan los segmentos a buscar
 * @param {String} url            url donde buscar
 * @return {Mixed}                false en caso de error, un string con los parametros seleccionados o string vacio si no encuentra parametros
*/
function uriSegment(param_position, main_name, url) {
    var index,
        urlArray;

    try {
        if (typeof url !== 'string' || url === undefined || url === '' || url === null) {
            url = window.location.pathname;
        }

        if (typeof main_name !== 'string' || main_name === undefined || main_name === '' || main_name === null) {
            main_name = 'index.php/';
        } else if (main_name.slice(-1) !== '/') {
            main_name += '/';
        }

        if (typeof param_position !== 'number' || param_position === undefined || param_position <= 0 || param_position === null) {
            param_position = false;
        } else {
            param_position -= 1;
        }

        index = url.indexOf(main_name) + main_name.length;

        if (param_position === false) {
            return url.substr(index);
        } else {
            urlArray = url.substr(index).split('/');
            if (urlArray[param_position] !== undefined) {
                return urlArray[param_position].toString();
            } else {
                return false;
            }
        }
    } catch (err) {
        return false;
    }
}