T.ME/BIBIL_0DAY
CasperSecurity


Server : Apache/2
System : Linux server-15-235-50-60 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64
User : gositeme ( 1004)
PHP Version : 8.2.29
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Directory :  /home/gositeme/domains/gositeme.com/public_html/quickqr/php/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/gositeme/domains/gositeme.com/public_html/quickqr/php/menu-edit.php
<?php
if (checkloggedin()) {
    $ses_userdata = get_user_data($_SESSION['user']['username']);
    $currency = !empty($ses_userdata['currency'])?$ses_userdata['currency']:get_option('currency_code');
    $currency_data = get_currency_by_code($currency);

    $menu = ORM::for_table($config['db']['pre'] . 'menu')
        ->where(array(
            'id' => $_GET['id'],
            'user_id' => $_SESSION['user']['id']
        ))
        ->find_one();

    if(!empty($menu['id'])) {
        $menuId = $menu['id'];
        $menuName = $menu['name'];
        $menuPrice = $currency_data['html_entity'] . $menu['price'];
        $menuImage = !empty($menu['image']) ? $menu['image'] : 'default.png';

        $user_lang = !empty($_COOKIE['Quick_user_lang_code'])
            ? $_COOKIE['Quick_user_lang_code']
            : $config['lang_code'];

        /* Variant Options */
        $variant_options_data = ORM::for_table($config['db']['pre'] . 'menu_variant_options')
            ->where(array(
                'menu_id' => $menuId
            ))
            ->order_by_asc('position')
            ->find_many();

        $variant_options = $variant_options2 = array();
        foreach ($variant_options_data as $info) {
            $variant_options[$info['id']]['id'] = $info['id'];
            $json = json_decode($info['translation'], true);

            $variant_options[$info['id']]['title'] = !empty($json[$user_lang]['title'])
                                                    ? $json[$user_lang]['title']
                                                    : $info['title'];
            $variant_options[$info['id']]['options_array'] = !empty($json[$user_lang]['options'])
                                                    ? $json[$user_lang]['options']
                                                    : json_decode($info['options'], true);

            $variant_options[$info['id']]['options'] = implode(', ', $variant_options[$info['id']]['options_array']);

            $variant_options[$info['id']]['active'] = $info['active'];

            /* Create extra loop for variant form (add only if the option is active) */
            if($info['active']) {
                $variant_options2[$info['id']]['id'] = $info['id'];
                $variant_options2[$info['id']]['title'] = !empty($json[$user_lang]['title'])
                    ? $json[$user_lang]['title']
                    : $info['title'];
                $variant_options2[$info['id']]['options'] = '';
                $options = !empty($json[$user_lang]['options'])
                    ? $json[$user_lang]['options']
                    : json_decode($info['options'], true);

                $loop_options = array();
                foreach ($options as $key => $option) {
                    $loop_options[$key]['key'] = $key;
                    $loop_options[$key]['title'] = $option;
                }
                $variant_options2[$info['id']]['OPTIONS_LOOP'] = $loop_options;
            }
        }

        /* Variants */
        $variants_data = ORM::for_table($config['db']['pre'] . 'menu_variants')
            ->where(array(
                'menu_id' => $menuId
            ))
            ->order_by_asc('position')
            ->find_many();

        $variants = array();
        $variant_options3 = array();
        foreach ($variants_data as $info) {
            $variants[$info['id']]['id'] = $info['id'];
            $variants[$info['id']]['price'] = $info['price'];
            $variants[$info['id']]['active'] = $info['active'];

            $variants[$info['id']]['options'] = json_decode($info['options'], true);

            /* Create title for the variant from options */
            $titles = array();
            foreach ($variants[$info['id']]['options'] as $key => $option)
            {
                if(isset($variant_options[$key]['options_array'][$option])) {
                    $titles[] = $variant_options[$key]['options_array'][$option];
                }
            }
            $variants[$info['id']]['title'] = implode(', ', $titles);

            /* Insert variant options for nested loop */
            $variants[$info['id']]['VARIANT_LOOP'] = $variant_options2;
            foreach ($variants[$info['id']]['VARIANT_LOOP'] as $upper_key => $loop_variants)
            {

                foreach ($loop_variants['OPTIONS_LOOP'] as $key => $option)
                {
                    /* Insert 'selected' keyword for selected options */
                    if($key == $variants[$info['id']]['options'][$upper_key])
                    {
                        $variants[$info['id']]['VARIANT_LOOP'][$upper_key]['OPTIONS_LOOP'][$key]['selected'] = 'selected';
                    }
                    else
                    {
                        $variants[$info['id']]['VARIANT_LOOP'][$upper_key]['OPTIONS_LOOP'][$key]['selected'] = '';
                    }
                }
            }
        }

        /* Extras */
        $extras_data = ORM::for_table($config['db']['pre'] . 'menu_extras')
            ->where(array(
                'menu_id' => $menuId
            ))
            ->order_by_asc('position')
            ->find_many();

        $extra = array();
        foreach ($extras_data as $info) {
            $extra[$info['id']]['id'] = $info['id'];

            $user_lang = !empty($_COOKIE['Quick_user_lang_code'])
                        ? $_COOKIE['Quick_user_lang_code']
                        : $config['lang_code'];
            $json = json_decode($info['translation'], true);

            $extra[$info['id']]['title'] = !empty($json[$user_lang]['title'])
                                        ? $json[$user_lang]['title']
                                        : $info['title'];

            $extra[$info['id']]['price'] = $info['price'];
            $extra[$info['id']]['active'] = $info['active'];
        }

        $menu_lang = get_user_option($_SESSION['user']['id'],'restaurant_menu_languages','');
        $menu_lang = explode(',', $menu_lang);

        /* Languages */
        $language = array();
        if(!empty($menu_lang) && count($menu_lang) > 1) {
            $menu_languages = ORM::for_table($config['db']['pre'] . 'languages')
                ->where('active', 1)
                ->order_by_asc('name')
                ->where_in('code', $menu_lang)
                ->find_many();

            foreach ($menu_languages as $info) {
                $language[$info['id']]['code'] = $info['code'];
                $language[$info['id']]['name'] = $info['name'];
                $language[$info['id']]['file_name'] = $info['file_name'];
            }
        }

        $page = new HtmlTemplate ('templates/' . $config['tpl_name'] . '/menu-edit.tpl');
        $page->SetParameter('OVERALL_HEADER', create_header($lang['MANAGE_MENU']));
        $page->SetParameter('MENU_ID', $menuId);
        $page->SetParameter('MENU_NAME', $menuName);
        $page->SetParameter('MENU_PRICE', $menuPrice);
        $page->SetParameter('MENU_IMAGE', $menuImage);
        $page->SetParameter('SHOW_LANGS', count($language));
        $page->SetParameter('OPTIONS_COUNT', count($variant_options2));
        $page->SetLoop ('LANGS', $language);
        $page->SetLoop('VARIANT_OPTIONS', $variant_options);
        $page->SetLoop('VARIANT_OPTIONS2', $variant_options2);
        $page->SetLoop('VARIANTS', $variants);
        $page->SetLoop('EXTRAS', $extra);
        $page->SetParameter('OVERALL_FOOTER', create_footer());
        $page->CreatePageEcho();

    }else{
        // 404 page
        error($lang['PAGE_NOT_FOUND'], __LINE__, __FILE__, 1);
    }
} else {
    headerRedirect($link['LOGIN']);
}

CasperSecurity Mini