Esempio n. 1
0
 public function init()
 {
     //Получаем список отделов из уровня логики приложения
     $this->mDepartments = Catalog::GetDepartments();
     //Создаем ссылки на отделы
     for ($i = 0; $i < count($this->mDepartments); $i++) {
         $this->mDepartments[$i]['link_to_department'] = Link::ToDepartment($this->mDepartments[$i]['department_id']);
     }
 }
 public function init()
 {
     // Get the list of departments from the business tier
     $this->mDepartments = Catalog::GetDepartment();
     // Create department links. Display at the "Choose a Department" section.
     for ($i = 0; $i < count($this->mDepartments); $i++) {
         $this->mDepartments[$i]['link_to_department'] = Link::ToDepartment($this->mDepartments[$i]['department_id']);
     }
     // old link format
     // 'index.php?DepartmentId=' . $this->mDepartments[$i]['department_id'];
 }
Esempio n. 3
0
 public function init()
 {
     // Get product details from business tier
     $this->mProduct = Catalog::GetProductDetails($this->_mProductId);
     if (isset($_SESSION['link_to_continue_shopping'])) {
         $continue_shopping = Link::QueryStringToArray($_SESSION['link_to_continue_shopping']);
         $page = 1;
         if (isset($continue_shopping['Page'])) {
             $page = (int) $continue_shopping['Page'];
         }
         if (isset($continue_shopping['CategoryId'])) {
             $this->mLinkToContinueShopping = Link::ToCategory((int) $continue_shopping['DepartmentId'], (int) $continue_shopping['CategoryId'], $page);
         } elseif (isset($continue_shopping['DepartmentId'])) {
             $this->mLinkToContinueShopping = Link::ToDepartment((int) $continue_shopping['DepartmentId'], $page);
         } elseif (isset($continue_shopping['SearchResults'])) {
             $this->mLinkToContinueShopping = Link::ToSearchResults(trim(str_replace('-', ' ', $continue_shopping['SearchString'])), $continue_shopping['AllWords'], $page);
         } else {
             $this->mLinkToContinueShopping = Link::ToIndex($page);
         }
     }
     if ($this->mProduct['image']) {
         $this->mProduct['image'] = Link::Build('images/product_images/' . $this->mProduct['image']);
     }
     if ($this->mProduct['image_2']) {
         $this->mProduct['image_2'] = Link::Build('images/product_images/' . $this->mProduct['image_2']);
     }
     $this->mProduct['attributes'] = Catalog::GetProductAttributes($this->mProduct['product_id']);
     $this->mLocations = Catalog::GetProductLocations($this->_mProductId);
     // Create the Add to Cart link
     $this->mProduct['link_to_add_product'] = Link::ToCart(ADD_PRODUCT, $this->_mProductId);
     // Build links for product departments and categories pages
     for ($i = 0; $i < count($this->mLocations); $i++) {
         $this->mLocations[$i]['link_to_department'] = Link::ToDepartment($this->mLocations[$i]['department_id']);
         $this->mLocations[$i]['link_to_category'] = Link::ToCategory($this->mLocations[$i]['department_id'], $this->mLocations[$i]['category_id']);
     }
     // Подготавливаем кнопу редактирования
     $this->mEditActionTarget = Link::Build(str_replace(VIRTUAL_LOCATION, '', getenv('REQUEST_URI')));
     if (isset($_SESSION['admin_logged']) && $_SESSION['admin_logged'] == TRUE && isset($_POST['submit_edit'])) {
         $product_locations = $this->mLocations;
         if (count($product_locations) > 0) {
             $department_id = $product_locations[0]['department_id'];
             $category_id = $product_locations[0]['category_id'];
             header('Location: ' . htmlspecialchars_decode(Link::ToProductAdmin($department_id, $category_id, $this->_mProductId)));
         }
     }
 }
Esempio n. 4
0
 public function init()
 {
     /* If browsing a category, get the list of products by calling the
      * GetProductsInCategory() business tier method */
     if (isset($this->_mCategoryId)) {
         $this->mProducts = Catalog::GetProductsInCategory($this->_mCategoryId, $this->mPage, $this->mrTotalPages);
     } elseif (isset($this->_mDepartmentId)) {
         $this->mProducts = Catalog::GetProductsOnDepartment($this->_mDepartmentId, $this->mPage, $this->mrTotalPages);
     } else {
         $this->mProducts = Catalog::GetProductsOnCatalog($this->mPage, $this->mrTotalPages);
     }
     /* If there are subpages of products, display navigation
        controls */
     if ($this->mrTotalPages > 1) {
         // Build the Next link
         if ($this->mPage < $this->mrTotalPages) {
             if (isset($this->_mCategoryId)) {
                 $this->mLinkToNextPage = Link::ToCategory($this->_mDepartmentId, $this->_mCategoryId, $this->mPage + 1);
             } elseif (isset($this->_mDepartmentId)) {
                 $this->mLinkToNextPage = Link::ToDepartment($this->_mDepartmentId, $this->mPage + 1);
             } else {
                 $this->mLinkToNextPage = Link::ToIndex($this->mPage + 1);
             }
         }
         // Build the Previous Link
         if ($this->mPage > 1) {
             if (isset($this->_mCategoryId)) {
                 $this->mLinkToPreviousPage = Link::ToCategory($this->_mDepartmentId, $this->_mCategoryId, $this->mPage - 1);
             } elseif (isset($this->_mDepartmentId)) {
                 $this->mLinkToPreviousPage = Link::ToDepartment($this->_mDepartmentId, $this->mPage - 1);
             } else {
                 $this->mLinkToPreviousPage = Link::ToIndex($this->mPage - 1);
             }
         }
     }
     // Build links for product details pages
     for ($i = 0; $i < count($this->mProducts); $i++) {
         $this->mProducts[$i]['link_to_product'] = Link::ToProduct($this->mProducts[$i]['product_id']);
         if ($this->mProducts[$i]['thumbnail']) {
             $this->mProducts[$i]['thumbnail'] = Link::Build('images/product_images/' . $this->mProducts[$i]['thumbnail']);
         }
         $this->mProducts[$i]['attributes'] = Catalog::GetProductAttributes($this->mProducts[$i]['product_id']);
     }
 }
Esempio n. 5
0
 public function init()
 {
     // Get product details from business tier
     $this->mProduct = Catalog::GetProductDetails($this->_mProductId);
     // Session Handle
     if (isset($_SESSION['link_to_continue_shopping'])) {
         $continue_shopping = Link::QueryStringToArray($_SESSION['link_to_continue_shopping']);
         $page = 1;
         // Cache the current query string. Then after choose the product, we will get back this page.
         if (isset($continue_shopping['Page'])) {
             $page = (int) $continue_shopping['Page'];
         }
         if (isset($continue_shopping['CategoryId'])) {
             $this->mLinkToContinueShopping = Link::ToCategory((int) $continue_shopping['DepartmentId'], (int) $continue_shopping['CategoryId'], $page);
         } elseif (isset($continue_shopping['DepartmentId'])) {
             $this->mLinkToContinueShopping = Link::ToDepartment((int) $continue_shopping['DepartmentId'], $page);
         } else {
             $this->mLinkToContinueShopping = Link::ToIndex($page);
         }
     }
     // Product detail
     if ($this->mProduct['image']) {
         $this->mProduct['image'] = Link::Build('images/product_images/' . $this->mProduct['image']);
     }
     if ($this->mProduct['image_2']) {
         $this->mProduct['image_2'] = Link::Build('images/product_images/' . $this->mProduct['image_2']);
     }
     $this->mProduct['attributes'] = Catalog::GetProductAttributes($this->mProduct['product_id']);
     // Similar products in catalog
     $this->mLocations = Catalog::GetProductLocations($this->_mProductId);
     // Build links for product departments and categories pages
     for ($i = 0; $i < count($this->mLocations); $i++) {
         $this->mLocations[$i]['link_to_department'] = Link::ToDepartment($this->mLocations[$i]['department_id']);
         $this->mLocations[$i]['link_to_category'] = Link::ToCategory($this->mLocations[$i]['department_id'], $this->mLocations[$i]['category_id']);
     }
 }
Esempio n. 6
0
 public function init()
 {
     //Подготавливаем кнопку редактирования
     $this->mEditActionTarget = Link::Build(str_replace(VIRTUAL_LOCATION, '', getenv('REQUEST_URI')));
     if (isset($_SESSION['admin_logged']) && $_SESSION['admin_logged'] == TRUE && isset($_POST['product_id'])) {
         if (isset($this->_mDepartmentId) && isset($this->_mCategoryId)) {
             header('Location: ' . htmlspecialchars_decode(Link::ToProductAdmin($this->_mDepartmentId, $this->_mCategoryId, (int) $_POST['product_id'])));
         } else {
             $product_locations = Catalog::GetProductLocations((int) $_POST['product_id']);
             if (count($product_locations) > 0) {
                 $department_id = $product_locations[0]['department_id'];
                 $category_id = $product_locations[0]['category_id'];
                 header('Location: ' . htmlspecialchars_decode(Link::ToProductAdmin($department_id, $category_id, (int) $_POST['product_id'])));
             }
         }
     }
     /* If searching the catalog, get the list of products by calling
        the Search business tier method */
     if (isset($this->mSearchString)) {
         // Get search results
         $search_results = Catalog::Search($this->mSearchString, $this->mAllWords, $this->mPage, $this->mrTotalPages);
         // Get the list of products
         $this->mProducts = $search_results['products'];
         // Build the title for the list of products
         if (count($search_results['accepted_words']) > 0) {
             $this->mSearchDescription = '<p class="description">Products containing <font class="words">' . ($this->mAllWords == 'on' ? 'all' : 'any') . '</font>' . ' of these words: <font class="words">' . implode(', ', $search_results['accepted_words']) . '</font></p>';
         }
         if (count($search_results['ignored_words']) > 0) {
             $this->mSearchDescription .= '<p class="description">Ignored words: <font class="words">' . implode(', ', $search_results['ignored_words']) . '</font></p>';
         }
         if (!(count($search_results['products']) > 0)) {
             $this->mSearchDescription .= '<p class="description">Your search generated no results.</p>';
         }
     } elseif (isset($this->_mCategoryId)) {
         $this->mProducts = Catalog::GetProductsInCategory($this->_mCategoryId, $this->mPage, $this->mrTotalPages);
     } elseif (isset($this->_mDepartmentId)) {
         $this->mProducts = Catalog::GetProductsOnDepartment($this->_mDepartmentId, $this->mPage, $this->mrTotalPages);
     } else {
         $this->mProducts = Catalog::GetProductsOnCatalog($this->mPage, $this->mrTotalPages);
     }
     /* If there are subpages of products, display navigation
        controls */
     if ($this->mrTotalPages > 1) {
         // Build the Next link
         if ($this->mPage < $this->mrTotalPages) {
             if (isset($_GET['SearchResults'])) {
                 $this->mLinkToNextPage = Link::ToSearchResults($this->mSearchString, $this->mAllWords, $this->mPage + 1);
             } elseif (isset($this->_mCategoryId)) {
                 $this->mLinkToNextPage = Link::ToCategory($this->_mDepartmentId, $this->_mCategoryId, $this->mPage + 1);
             } elseif (isset($this->_mDepartmentId)) {
                 $this->mLinkToNextPage = Link::ToDepartment($this->_mDepartmentId, $this->mPage + 1);
             } else {
                 $this->mLinkToNextPage = Link::ToIndex($this->mPage + 1);
             }
         }
         // Build the Previous link
         if ($this->mPage > 1) {
             if (isset($_GET['SearchResults'])) {
                 $this->mLinkToPreviousPage = Link::ToSearchResults($this->mSearchString, $this->mAllWords, $this->mPage - 1);
             } elseif (isset($this->_mCategoryId)) {
                 $this->mLinkToPreviousPage = Link::ToCategory($this->_mDepartmentId, $this->_mCategoryId, $this->mPage - 1);
             } elseif (isset($this->_mDepartmentId)) {
                 $this->mLinkToPreviousPage = Link::ToDepartment($this->_mDepartmentId, $this->mPage - 1);
             } else {
                 $this->mLinkToPreviousPage = Link::ToIndex($this->mPage - 1);
             }
         }
         // Build the pages links
         for ($i = 1; $i <= $this->mrTotalPages; $i++) {
             if (isset($_GET['SearchResults'])) {
                 $this->mProductListPages[] = Link::ToSearchResults($this->mSearchString, $this->mAllWords, $i);
             } elseif (isset($this->_mCategoryId)) {
                 $this->mProductListPages[] = Link::ToCategory($this->_mDepartmentId, $this->_mCategoryId, $i);
             } elseif (isset($this->_mDepartmentId)) {
                 $this->mProductListPages[] = Link::ToDepartment($this->_mDepartmentId, $i);
             } else {
                 $this->mProductListPages[] = Link::ToIndex($i);
             }
         }
     }
     /* 404 redirect if the page number is larger than
        the total number of pages */
     if ($this->mPage > $this->mrTotalPages && !empty($this->mrTotalPages)) {
         // Clean output buffer
         ob_clean();
         // Load the 404 page
         include '404.php';
         // Clear the output buffer and stop execution
         flush();
         ob_flush();
         ob_end_clean();
         exit;
     }
     // Build links for product details pages
     for ($i = 0; $i < count($this->mProducts); $i++) {
         $this->mProducts[$i]['link_to_product'] = Link::ToProduct($this->mProducts[$i]['product_id']);
         if ($this->mProducts[$i]['thumbnail']) {
             $this->mProducts[$i]['thumbnail'] = Link::Build('images/product_images/' . $this->mProducts[$i]['thumbnail']);
         }
         // Create the Add to Cart link
         $this->mProducts[$i]['link_to_add_product'] = Link::ToCart(ADD_PRODUCT, $this->mProducts[$i]['product_id']);
         $this->mProducts[$i]['attributes'] = Catalog::GetProductAttributes($this->mProducts[$i]['product_id']);
     }
 }