Example #1
0
 function Build($row)
 {
     Module::Module($row);
     ##################################################################################################
     $build_catids = @CGlobal::$configs['BuildCatIDs']['conf_val'];
     if ($build_catids != '') {
         $arr = explode(',', $build_catids);
         $build_catids = '';
         $last = 0;
         if ($arr) {
             foreach ($arr as $catid) {
                 if (isset(CGlobal::$allCategories[$catid]) && CGlobal::$allCategories[$catid]['status'] != 'HIDE') {
                     $build_catids .= ($build_catids != '' ? ',' : '') . $catid;
                     Build::$cats[$catid] = array('id' => $catid, 'name' => CGlobal::$allCategories[$catid]['name'], 'recomend' => str_replace(chr(13) . chr(10), "<br />", CGlobal::$allCategories[$catid]['recomend']), 'img' => AZLib::getImageThumb("category/{$catid}.gif", 40, 40, 0, 0), 'item_id' => 0, 'item_name' => '', 'item_url' => '', 'item_price' => '', 'item_warranty' => '', 'list_brief' => '');
                     if ($last) {
                         Build::$cats[$last]['next_id'] = $catid;
                     }
                     $last = $catid;
                 }
             }
         }
     }
     self::$bcatid = (int) Url::get('bcatid');
     if (self::$bcatid) {
         if (isset(Build::$cats[self::$bcatid])) {
             self::$bcat = Build::$cats[self::$bcatid];
         } else {
             Url::redirect_current(array('mode'));
         }
     } else {
         self::$bcat = reset(Build::$cats);
         if (self::$bcat) {
             self::$bcatid = (int) self::$bcat['id'];
         }
     }
     ##################################################################################################
     $item_ids = '';
     $build_ids = isset($_SESSION['build_ids']) ? $_SESSION['build_ids'] : '';
     $build_price = 0;
     if ($build_ids != '') {
         $items = array();
         $re = DB::query("SELECT * FROM item WHERE id IN(" . $build_ids . ") AND status=1 AND price>0 AND quantity>0 ORDER BY find_in_set(category_id,'" . $build_catids . "')");
         if ($re) {
             while ($item = mysql_fetch_assoc($re)) {
                 if (isset(Build::$cats[$item['category_id']]) && Build::$cats[$item['category_id']]['item_id'] == 0) {
                     Build::$price += $item['price'];
                     $item_ids .= ($item_ids != '' ? ',' : '') . $item['id'];
                     if (isset(CGlobal::$allCategories[$item['category_id']])) {
                         $item_url = WEB_DIR . CGlobal::$allCategories[$item['category_id']]['nice_name'] . "/p{$item['id']}/" . AZLib::safe_title($item['name']) . ".html";
                     } else {
                         $item_url = WEB_DIR . "p{$item['id']}/" . AZLib::safe_title($item['name']) . ".html";
                     }
                     if ($item['list_brief'] == '') {
                         $item['list_brief'] = $item['brief'];
                     }
                     $item['list_brief'] = preg_replace("/\\[([\\s]*[0-9]{1,2}[\\s]*)\\]/eis", " ", $item['list_brief']);
                     $item['list_brief'] = str_replace(array("'", "\""), array("", " "), $item['list_brief']);
                     $item['list_brief'] = AZLib::word_limit($item['list_brief'], 50, '');
                     Build::$items[$item['id']] = $item;
                     Build::$cats[$item['category_id']]['item_id'] = $item['id'];
                     Build::$cats[$item['category_id']]['item_name'] = $item['name'];
                     Build::$cats[$item['category_id']]['item_url'] = $item_url;
                     Build::$cats[$item['category_id']]['item_price'] = number_format($item['price'], 0, ',', '.') . " VNĐ";
                     Build::$cats[$item['category_id']]['item_warranty'] = $item['warranty'];
                     Build::$cats[$item['category_id']]['list_brief'] = $item['list_brief'];
                 }
             }
         }
     }
     $item_id = (int) Url::get('item_id');
     $bcatid = (int) Url::get('bcatid');
     if ($item_id && $bcatid) {
         $item = Item::get_item($item_id);
         if ($item && $item['status'] == 1 && $item['price'] > 0 && $item['quantity'] > 0 && isset(Build::$cats[$item['category_id']])) {
             if (!isset(Build::$items[$item['id']])) {
                 if (Build::$cats[$item['category_id']]['item_id'] > 0) {
                     unset(Build::$items[Build::$cats[$item['category_id']]['item_id']]);
                 }
                 Build::$items[$item['id']] = $item;
                 //$item_ids	.=	($item_ids!='' ? ',' : '')	.	$item['id'];
                 $item_ids = implode(',', array_keys(Build::$items));
                 $_SESSION['build_ids'] = "{$item_ids}";
                 $last = 0;
                 foreach (array_keys(Build::$cats) as $catid) {
                     if ($last == self::$bcatid) {
                         Url::redirect_current(array('mode', 'bcatid' => $catid), '#select_item');
                     }
                     $last = $catid;
                 }
             }
         }
         Url::redirect_current(array('mode', 'bcatid'));
     }
     $_SESSION['build_ids'] = "{$item_ids}";
     $cmd = Url::get('cmd');
     switch ($cmd) {
         case 'success':
             require_once 'forms/BuildSuccess.php';
             $this->add_form(new BuildSuccessForm());
             break;
         case 'reset':
             $_SESSION['build_ids'] = "";
             Url::redirect_current();
             break;
         case 'order':
             if ($item_ids != '') {
                 $cart_item_ids = isset($_COOKIE['cart_items']) ? $_COOKIE['cart_items'] : '';
                 if ($cart_item_ids != '') {
                     $buil_item_arr = explode(',', $item_ids);
                     $item_ids = $cart_item_ids;
                     $cat_item_arr = explode(',', $cart_item_ids);
                     foreach ($buil_item_arr as $item_id) {
                         if (!in_array($item_id, $cat_item_arr)) {
                             $item_ids .= ($item_ids != '' ? ',' : '') . $item_id;
                         }
                     }
                 }
                 if ($item_ids != $cart_item_ids) {
                     AZLib::my_setcookie('cart_items', $item_ids, time() + 3600 * 24 * 365);
                 }
                 $_SESSION['build_ids'] = "";
                 Url::redirect('cart');
             }
             Url::redirect_current();
             break;
         case '':
         default:
             require_once 'forms/Build.php';
             $this->add_form(new BuildForm());
             break;
     }
 }