コード例 #1
0
ファイル: func.php プロジェクト: OneataBogdan/lead_coriolan
/**
 * Validates if URL is valid
 * @param array $seo parsed data of target object
 * @param string $path URL path 
 * @param array $objects list of objects in URL path
 * @return boolean true if object is valid, false - otherwise
 */
function fn_seo_validate_object($seo, $path, $objects)
{
    $result = true;
    if (Registry::get('addons.seo.single_url') == 'Y' && $seo['lang_code'] != Registry::get('settings.Appearance.frontend_default_language')) {
        return false;
    }
    if (!empty($objects['sl']) && $objects['sl'] != $seo['lang_code'] && Registry::get('addons.seo.single_url') != 'Y') {
        return false;
    }
    if (AREA == 'C') {
        $avail_langs = fn_get_simple_languages(!empty($_SESSION['auth']['area']) && $_SESSION['auth']['area'] == 'A');
        $obj_sl = !empty($objects['sl']) ? $objects['sl'] : $seo['lang_code'];
        if (!in_array($obj_sl, array_keys($avail_langs))) {
            return false;
        }
    }
    if (preg_match('/^(.*\\/)?((' . $objects['object_name'] . ')(([\\/\\-]page[\\-]?[\\d]*)?(\\/|(\\' . SEO_FILENAME_EXTENSION . '))?)?)$/', $path, $matches)) {
        // remove object from path
        $path = substr_replace($path, '', strrpos($path, $matches[2]));
    }
    if (Registry::get('addons.seo.seo_language') == 'Y') {
        $path = substr($path, 3);
        // remove language prefix
    }
    $path = rtrim($path, '/');
    // remove trailing slash
    $vars = fn_get_seo_vars($seo['type']);
    // check parent objects
    $result = fn_seo_validate_parents($path, $seo['path'], !empty($vars['parent_type']) ? $vars['parent_type'] : $seo['type'], $vars, $seo['lang_code']);
    if ($result) {
        if (fn_check_seo_schema_option($vars, 'html_options')) {
            $result = !empty($objects['extension']);
        } else {
            $result = empty($objects['extension']);
        }
    }
    // Deprecated
    fn_set_hook('validate_sef_object', $path, $seo, $vars, $result, $objects);
    return $result;
}
コード例 #2
0
ファイル: func.php プロジェクト: diedsmiling/busenika
function fn_news_and_emails_validate_sef_object($path, $seo, $vars, &$result, $objects)
{
    if ($seo['type'] == 'n') {
        $result = empty($objects['extension']) ? false : fn_seo_validate_parents($path, '', 'n', true, $seo['lang_code']);
    }
}