Subversion-Projekte lars-tiefland.ci

Revision

Revision 2252 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

<?php

/**
 *
 * @package WebanOS CI
 * @author Lars Tiefland <ltiefland@gmail.com> 
 * @copyright 2016
 * @version $Rev: 2253 $
 */

class Weban_backend
{
    public function __construct()
    {
        $CI = &get_instance();
        $csrf_name = $CI->security->get_csrf_token_name();
        $csrf_value = $CI->security->get_csrf_hash();
        $CI->smarty->assign('csrf_name', $csrf_name);
        $CI->smarty->assign('csrf_value', $csrf_value);
        if (!isset($_SESSION['username'])) {
            if (!isset($_SESSION["redirected"])) {
                $_SESSION["redirected"] = true;
                header("Location:/backend/Login/");
                exit;
            }
            return;
        }
        $web_rechte = array();
        $user_rechte = array();
        $CI->load->model('termine_model', 'termine');
        $termine = $CI->termine->get_list();
        $CI->smarty->assign('termine', $termine);
        $sql = "SELECT
                                *
                        FROM
                                webs
                        WHERE
                                domain='" . __SHOP__ . "'
                ";
        $res = $GLOBALS["db_red"]->query($sql);
        $GLOBALS["webs"] = $res->row_array();
        $base = $_SERVER["DOCUMENT_ROOT"] . "/backend/css";
        $extra = "/" . __SHOP__ . "/";
        $file = "jquery-ui.custom.css";
        $css_file = $base . $extra . $file;
        if (!file_exists($css_file)) {
            $extra = "/start/";
        }
        $css_file = "/backend/css" . $extra . $file;
        $CI->smarty->assign("jquery_ui_css", $css_file);
        $CI->smarty->assign("webs", $GLOBALS["webs"]);

        $sql = "SELECT
                                modules.interner_name AS m_name,
                                tools.button_name AS t_name,
                                properties.interner_name AS p_name,
                                webs_properties.Bezeichnung,
                                filename
                        FROM
                                webs,
                        webs_properties,
                        properties,
                        tools,
                        modules
                    WHERE
                        webs.domain='" . __SHOP__ . "'
                    AND
                        webs_properties.webs=webs.ID
                    AND
                        webs_properties.properties=properties.ID
                    AND
                        properties.tools = tools.ID
                    AND
                        tools.modules = modules.ID
                    ORDER BY
                        properties.Rang
                ";

        $result = $GLOBALS["db_red"]->query($sql);
        while ($zeile = $result->unbuffered_row('array')) {
            //var_dump($zeile);
            //exit;
            if (!$zeile["Bezeichnung"]) {
                $zeile["Bezeichnung"] = "";
            }
            $zeile["Bezeichnung"] = explode("|", $zeile["Bezeichnung"]);

            if (count($zeile["Bezeichnung"]) == 1) {
                $zeile["Bezeichnung"] = $zeile["Bezeichnung"][0];
            }
            $web_rechte[$zeile["m_name"]][$zeile["t_name"]][$zeile["p_name"]] = $zeile["Bezeichnung"];
        }

        foreach (array_keys($web_rechte) as $a) {
            foreach (array_keys($web_rechte[$a]) as $b) {
                foreach (array_keys($web_rechte[$a][$b]) as $c) {
                    if (is_array($web_rechte[$a][$b][$c])) {
                        //if (in_array($_SESSION[language], $web_rechte[$a][$b][$c]))
                        {
                            $web_rechte[$a][$b][$c] = $web_rechte[$a][$b][$c][array_search($_SESSION["language"],
                                array_keys($web_rechte["online_shop"]["language"]))];
                        }
                        if ($web_rechte[$a][$b][$c] == "./.") {
                            unset($web_rechte[$a][$b][$c]);
                        }
                    }
                }
            }
        }

        unset($query);
        unset($result);
        unset($zeile);
        $CI->smarty->assign("web_rechte", $web_rechte);
        if ($CI->session->user_data["user"] == "admin") {
            $user_rechte = $web_rechte;
        } else {
            $sql = "
                                SELECT
                                        modules.interner_name AS module,
                                        tools.button_name AS tool,
                                        properties.interner_name AS property
                                FROM
                                        webs,
                                        Access,
                                        webs_properties,
                                        user_properties,
                                        properties,
                                        tools,
                                        modules
                                WHERE
                                        webs.domain='" . __SHOP__ . "'
                                AND
                                        webs_properties.webs=webs.ID
                                AND
                                        webs_properties.properties=properties.ID
                                AND
                                        Access.user='" . $CI->session->user_data["user"] . "'
                                AND
                                        user_properties.Access=Access.ID
                                AND
                                        user_properties.properties=properties.ID
                                AND
                                        properties.tools = tools.ID
                                AND
                                        tools.modules = modules.ID
                        ";
            $result = $GLOBALS["db_red"]->query($sql);
            while ($zeile = $result->unbuffered_row('array')) {
                $user_rechte[$zeile["module"]][$zeile["tool"]][$zeile["property"]] = 1;
            }
        }
        $CI->smarty->assign("user_rechte", $user_rechte);
        $query_modules = "SELECT
                                *
                        FROM
                                modules
                        ORDER BY
                                rang
                ";

        $result_modules = $GLOBALS['db_red']->query($query_modules);
        while ($zeile_modules = $result_modules->unbuffered_row('array')) {
            $u_tools = array();
            if (isset($user_rechte[$zeile_modules["interner_name"]])) {
                $query_tools = "SELECT
                                                *
                                        FROM
                                                tools
                                        WHERE
                                                tools.modules = " . $zeile_modules["ID"] . "
                                        AND
                                                tools.hidden='false'
                                        ORDER BY
                                                tools.rang
                                ";

                $result_tools = $GLOBALS['db_red']->query($query_tools);
                while ($zeile_tools = $result_tools->unbuffered_row('array')) {
                    if (isset($user_rechte[$zeile_modules["interner_name"]][$zeile_tools["button_name"]])) {
                        if ($zeile_tools["filename"]) {
                            $images_Pfad = 'images/navigation/';
                            $imgsrc = $images_Pfad . 'bt_' . $zeile_tools["button_name"] . '.gif';
                            $imgsrc_f2 = $images_Pfad . 'bt_' . $zeile_tools["button_name"] . '_f2.gif';
                            $u_tools[] = array(
                                "ID" => $zeile_tools["ID"],
                                "image" => $imgsrc,
                                "image_f2" => $imgsrc_f2,
                                "filename" => $zeile_tools["filename"],
                                "name" => $zeile_tools["name"],
                                "icon" => $zeile_tools["icon"],
                                );
                        }
                    }
                }
                if ($u_tools) {
                    $u_modules[] = array(
                        "name" => $zeile_modules["name"],
                        "interner_name" => $zeile_modules["interner_name"],
                        "ID" => $zeile_modules["ID"],
                        "count" => count($user_rechte[$zeile_modules["interner_name"]]),
                        "tools" => $u_tools,
                        "icon" => $zeile_modules["icon"],
                        );
                }
            }
        }
        $CI->smarty->assign('u_modules', $u_modules);
        $GLOBALS["web_rechte"] = $web_rechte;
        $GLOBALS["user_rechte"] = $user_rechte;
    }
}

?>