public static function parseSelection(umiSelection $vef5714e0519bfaa645cdff7d28843b70)
    {
        if (!defined('MAX_SELECTION_TABLE_JOINS')) {
            define('MAX_SELECTION_TABLE_JOINS', 10);
        }
        $vef5714e0519bfaa645cdff7d28843b70->sql_cond__need_content = false;
        $vef5714e0519bfaa645cdff7d28843b70->sql_cond__need_hierarchy = $vef5714e0519bfaa645cdff7d28843b70->getForceCond();
        $vef5714e0519bfaa645cdff7d28843b70->sql_cond__domain_ignored = $vef5714e0519bfaa645cdff7d28843b70->getIsDomainIgnored();
        $vef5714e0519bfaa645cdff7d28843b70->sql_cond__lang_ignored = $vef5714e0519bfaa645cdff7d28843b70->getIsLangIgnored();
        $vef5714e0519bfaa645cdff7d28843b70->sql_cond__total_joins = 0;
        $vef5714e0519bfaa645cdff7d28843b70->sql_cond__content_tables_loaded = 0;
        $vef5714e0519bfaa645cdff7d28843b70->sql_arr_for_mark_used_fields = array();
        $vef5714e0519bfaa645cdff7d28843b70->sql_arr_for_and_or_part = array();
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__hierarchy = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__element_type = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__object_type = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__owner = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__objects = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__elements = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__perms = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__props_and_names = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__lang_cond = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__domain_cond = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__unactive_cond = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__perms_tables = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_part__content_tables = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_kwd_distinct = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_kwd_distinct_count = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_kwd_straight_join = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_select_expr = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_table_references = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_required = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_common = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_additional = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_order_by = "";
        $vef5714e0519bfaa645cdff7d28843b70->sql_limit = "";
        self::makeLimitPart($vef5714e0519bfaa645cdff7d28843b70);
        self::makeHierarchyPart($vef5714e0519bfaa645cdff7d28843b70);
        self::makeElementTypePart($vef5714e0519bfaa645cdff7d28843b70);
        self::makeOwnerPart($vef5714e0519bfaa645cdff7d28843b70);
        self::makeObjectsPart($vef5714e0519bfaa645cdff7d28843b70);
        self::makeElementsPart($vef5714e0519bfaa645cdff7d28843b70);
        self::makePermsParts($vef5714e0519bfaa645cdff7d28843b70);
        self::makePropPart($vef5714e0519bfaa645cdff7d28843b70);
        self::makeObjectTypePart($vef5714e0519bfaa645cdff7d28843b70);
        self::makeOrderPart($vef5714e0519bfaa645cdff7d28843b70);
        self::makeNamesPart($vef5714e0519bfaa645cdff7d28843b70);
        self::makePropsAndNames($vef5714e0519bfaa645cdff7d28843b70);
        self::makeHierarchySpecificConds($vef5714e0519bfaa645cdff7d28843b70);
        if ($vef5714e0519bfaa645cdff7d28843b70->sql_cond__total_joins >= 59) {
            return array("result" => false, "count" => false);
        }
        self::makeDistinctKeywords($vef5714e0519bfaa645cdff7d28843b70);
        self::makeStraitJoinKeyword($vef5714e0519bfaa645cdff7d28843b70);
        self::makeSelectExpr($vef5714e0519bfaa645cdff7d28843b70);
        self::makeTables($vef5714e0519bfaa645cdff7d28843b70);
        self::makeWhereConditions($vef5714e0519bfaa645cdff7d28843b70);
        $v1126b3d9572018ac34b2e234c00dc2c3 = "";
        $v7dabf5c198b0bab2eaa42bb03a113e55 = sizeof($vef5714e0519bfaa645cdff7d28843b70->usedContentTables);
        if ($v7dabf5c198b0bab2eaa42bb03a113e55 > 1) {
            for ($v865c0c0b4ab0e063e5caa3387c1a8741 = 0; $v865c0c0b4ab0e063e5caa3387c1a8741 < $v7dabf5c198b0bab2eaa42bb03a113e55 - 1; $v865c0c0b4ab0e063e5caa3387c1a8741++) {
                $v43b5c9175984c071f30b873fdce0a000 = $vef5714e0519bfaa645cdff7d28843b70->usedContentTables[$v865c0c0b4ab0e063e5caa3387c1a8741];
                $vd0cab90d8d20d57e2f2b9be52f7dd25d = $vef5714e0519bfaa645cdff7d28843b70->usedContentTables[$v865c0c0b4ab0e063e5caa3387c1a8741 + 1];
                $v1126b3d9572018ac34b2e234c00dc2c3 .= " AND {$v43b5c9175984c071f30b873fdce0a000}.obj_id = {$vd0cab90d8d20d57e2f2b9be52f7dd25d}.obj_id";
            }
        }
        $v16efe07aeec5bc36c29c1116370aaf55 = "";
        if (defined("DISABLE_CALC_FOUND_ROWS")) {
            if (DISABLE_CALC_FOUND_ROWS) {
                $v16efe07aeec5bc36c29c1116370aaf55 = "SQL_CALC_FOUND_ROWS";
            }
        }
        if ($vef5714e0519bfaa645cdff7d28843b70->sql_part__perms_tables) {
            $vef5714e0519bfaa645cdff7d28843b70->sql_kwd_distinct = "";
            $vef5714e0519bfaa645cdff7d28843b70->sql_group_by = " GROUP BY h.id";
        } else {
            $vef5714e0519bfaa645cdff7d28843b70->sql_group_by = "";
        }
        $vac5c74b64b4b8352ef2f181affb5ac2a = <<<SQL
\t\t\t\tSELECT {$vef5714e0519bfaa645cdff7d28843b70->sql_kwd_straight_join} {$v16efe07aeec5bc36c29c1116370aaf55}  {$vef5714e0519bfaa645cdff7d28843b70->sql_kwd_distinct}
\t\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_select_expr}
\t\t\t\tFROM
\t\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_table_references}
\t\t\t\tWHERE
\t\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_required}
\t\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_common}
\t\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_additional}
\t\t\t\t\t{$v1126b3d9572018ac34b2e234c00dc2c3}
\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_group_by}
\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_order_by}
\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_limit}
SQL;
        $vc89ab23398f486d0df6dc8ad44ae1d4c = <<<SQL
\t\t\t\tSELECT {$vef5714e0519bfaa645cdff7d28843b70->sql_kwd_straight_join} 
\t\t\t\t\tCOUNT({$vef5714e0519bfaa645cdff7d28843b70->sql_kwd_distinct_count}{$vef5714e0519bfaa645cdff7d28843b70->sql_select_count_expr})
\t\t\t\tFROM
\t\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_table_references}
\t\t\t\tWHERE
\t\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_required}
\t\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_common}
\t\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_additional}
\t\t\t\t\t{$v1126b3d9572018ac34b2e234c00dc2c3}
SQL;
        if ($vef5714e0519bfaa645cdff7d28843b70->optimize_root_search_query && sizeof($vef5714e0519bfaa645cdff7d28843b70->getElementTypeConds()) && !sizeof(array_positive_values($vef5714e0519bfaa645cdff7d28843b70->getHierarchyConds()))) {
            $vca7adb9881c5ed53066501aa82aae638 = implode(", ", $vef5714e0519bfaa645cdff7d28843b70->getElementTypeConds());
            if ($vef5714e0519bfaa645cdff7d28843b70->sql_table_references) {
                $vef5714e0519bfaa645cdff7d28843b70->sql_table_references = "," . $vef5714e0519bfaa645cdff7d28843b70->sql_table_references;
            }
            if ($vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_required) {
                $vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_required = " AND " . $vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_required;
            }
            $vac5c74b64b4b8352ef2f181affb5ac2a = <<<SQL
SELECT DISTINCT h.id
\tFROM cms3_hierarchy hp
\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_table_references}
\t\tWHERE h.type_id IN ({$vca7adb9881c5ed53066501aa82aae638})
\t\t\tAND (h.rel = 0 OR (h.rel = hp.id AND hp.type_id NOT IN ({$vca7adb9881c5ed53066501aa82aae638}))) {$vef5714e0519bfaa645cdff7d28843b70->sql_part__domain_cond} {$vef5714e0519bfaa645cdff7d28843b70->sql_part__lang_cond}
\t\t\tAND h.is_deleted = '0'
\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_required}
\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_common}
\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_where_condition_additional}
\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_order_by}
\t\t\t\t{$vef5714e0519bfaa645cdff7d28843b70->sql_limit}
SQL;
            $vc89ab23398f486d0df6dc8ad44ae1d4c = <<<SQL
SELECT COUNT(DISTINCT h.id) FROM cms3_hierarchy h, cms3_hierarchy hp WHERE h.type_id IN ({$vca7adb9881c5ed53066501aa82aae638}) AND (h.rel = 0 OR (h.rel = hp.id AND hp.type_id NOT IN ({$vca7adb9881c5ed53066501aa82aae638}))) {$vef5714e0519bfaa645cdff7d28843b70->sql_part__domain_cond} {$vef5714e0519bfaa645cdff7d28843b70->sql_part__lang_cond} AND h.is_deleted = '0'
SQL;
        }
        return array('result' => $vac5c74b64b4b8352ef2f181affb5ac2a, 'count' => $vc89ab23398f486d0df6dc8ad44ae1d4c);
    }
Example #2
0
function array_positive_values($v47c80780ab608cc046f2a6e6f071feb6, $vf8532b6380228945d474f37fb6cdac27 = true)
{
    if (is_array($v47c80780ab608cc046f2a6e6f071feb6) == false) {
        return array();
    }
    $result = array();
    foreach ($v47c80780ab608cc046f2a6e6f071feb6 as $v3c6e0b8a9c15224a8228b9a98ca1531d => $v2063c1608d6e0baf80249c42e2be5804) {
        if ($v2063c1608d6e0baf80249c42e2be5804) {
            if (is_array($v2063c1608d6e0baf80249c42e2be5804)) {
                if ($vf8532b6380228945d474f37fb6cdac27) {
                    $v2063c1608d6e0baf80249c42e2be5804 = array_positive_values($v2063c1608d6e0baf80249c42e2be5804, $vf8532b6380228945d474f37fb6cdac27);
                    if (sizeof($v2063c1608d6e0baf80249c42e2be5804) == 0) {
                        continue;
                    }
                }
            }
            $result[$v3c6e0b8a9c15224a8228b9a98ca1531d] = $v2063c1608d6e0baf80249c42e2be5804;
        }
    }
    return $result;
}