Exemplo n.º 1
0
/**
 * @param (string) $slug - urldecoded post name or other slug.
*/
function qtranxf_slug_multilingual_base($slug)
{
    global $q_config;
    $is_permastruct = qtranxf_slug_is_permastruct($slug);
    if ($is_permastruct) {
        $info = qtranxf_slug_split_permastruct($slug);
        $val = '';
        foreach ($info['blocks'] as $b) {
            if (qtranxf_slug_is_substitution($b)) {
                $val .= $b;
            } else {
                $val .= qtranxf_slug_multilingual($b);
            }
        }
        return $val;
    } else {
        return qtranxf_slug_multilingual($slug);
    }
}
/**
 * @param (string) $s - decoded string
 * return array - ('blocks' => [all blocks between '/'], 'slugs' => [decoded slugs])
 */
function qtranxf_slug_split_permastruct($s)
{
    $blocks = explode('/', $s);
    $info = array('blocks' => $blocks, 'slugs' => array());
    $slugs =& $info['slugs'];
    if (count($blocks) == 1) {
        $slugs[] = $blocks[0];
    } else {
        foreach ($blocks as $k => $v) {
            if (empty($v)) {
                continue;
            }
            if (qtranxf_slug_is_substitution($v)) {
                continue;
            }
            $slugs[] = $v;
        }
    }
    return $info;
}