[ Index ]
 

Code source de osCommerce 2.2ms2-060817

Accédez au Source d'autres logiciels libres

Classes | Fonctions | Variables | Constantes | Tables

title

Body

[fermer]

/catalog/ -> index.php (source)

   1  <?php
   2  /*
   3    $Id: index.php,v 1.1 2003/06/11 17:37:59 hpdl Exp $
   4  
   5    osCommerce, Open Source E-Commerce Solutions
   6    http://www.oscommerce.com
   7  
   8    Copyright (c) 2003 osCommerce
   9  
  10    Released under the GNU General Public License
  11  */
  12  
  13    require ('includes/application_top.php');
  14  
  15  // the following cPath references come from application_top.php
  16    $category_depth = 'top';
  17    if (isset($cPath) && tep_not_null($cPath)) {
  18      $categories_products_query = tep_db_query("select count(*) as total from " . TABLE_PRODUCTS_TO_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");
  19      $cateqories_products = tep_db_fetch_array($categories_products_query);
  20      if ($cateqories_products['total'] > 0) {
  21        $category_depth = 'products'; // display products
  22      } else {
  23        $category_parent_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " where parent_id = '" . (int)$current_category_id . "'");
  24        $category_parent = tep_db_fetch_array($category_parent_query);
  25        if ($category_parent['total'] > 0) {
  26          $category_depth = 'nested'; // navigate through the categories
  27        } else {
  28          $category_depth = 'products'; // category has no products, but display the 'no products' message
  29        }
  30      }
  31    }
  32  
  33    require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);
  34  ?>
  35  <!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
  36  <html <?php echo HTML_PARAMS; ?>>
  37  <head>
  38  <meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
  39  <title><?php echo TITLE; ?></title>
  40  <base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
  41  <link rel="stylesheet" type="text/css" href="stylesheet.css">
  42  </head>
  43  <body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
  44  <!-- header //-->
  45  <?php require(DIR_WS_INCLUDES . 'header.php'); ?>
  46  <!-- header_eof //-->
  47  
  48  <!-- body //-->
  49  <table border="0" width="100%" cellspacing="3" cellpadding="3">
  50    <tr>
  51      <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
  52  <!-- left_navigation //-->
  53  <?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
  54  <!-- left_navigation_eof //-->
  55      </table></td>
  56  <!-- body_text //-->
  57  <?php
  58    if ($category_depth == 'nested') {
  59      $category_query = tep_db_query("select cd.categories_name, c.categories_image from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_id = '" . (int)$current_category_id . "' and cd.categories_id = '" . (int)$current_category_id . "' and cd.language_id = '" . (int)$languages_id . "'");
  60      $category = tep_db_fetch_array($category_query);
  61  ?>
  62      <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
  63        <tr>
  64          <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
  65            <tr>
  66              <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
  67              <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . $category['categories_image'], $category['categories_name'], HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
  68            </tr>
  69          </table></td>
  70        </tr>
  71        <tr>
  72          <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
  73        </tr>
  74        <tr>
  75          <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
  76            <tr>
  77              <td><table border="0" width="100%" cellspacing="0" cellpadding="2">
  78                <tr>
  79  <?php
  80      if (isset($cPath) && strpos('_', $cPath)) {
  81  // check to see if there are deeper categories within the current category
  82        $category_links = array_reverse($cPath_array);
  83        for($i=0, $n=sizeof($category_links); $i<$n; $i++) {
  84          $categories_query = tep_db_query("select count(*) as total from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "'");
  85          $categories = tep_db_fetch_array($categories_query);
  86          if ($categories['total'] < 1) {
  87            // do nothing, go through the loop
  88          } else {
  89            $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$category_links[$i] . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
  90            break; // we've found the deepest category the customer is in
  91          }
  92        }
  93      } else {
  94        $categories_query = tep_db_query("select c.categories_id, cd.categories_name, c.categories_image, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.parent_id = '" . (int)$current_category_id . "' and c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' order by sort_order, cd.categories_name");
  95      }
  96  
  97      $number_of_categories = tep_db_num_rows($categories_query);
  98  
  99      $rows = 0;
 100      while ($categories = tep_db_fetch_array($categories_query)) {
 101        $rows++;
 102        $cPath_new = tep_get_path($categories['categories_id']);
 103        $width = (int)(100 / MAX_DISPLAY_CATEGORIES_PER_ROW) . '%';
 104        echo '                <td align="center" class="smallText" width="' . $width . '" valign="top"><a href="' . tep_href_link(FILENAME_DEFAULT, $cPath_new) . '">' . tep_image(DIR_WS_IMAGES . $categories['categories_image'], $categories['categories_name'], SUBCATEGORY_IMAGE_WIDTH, SUBCATEGORY_IMAGE_HEIGHT) . '<br>' . $categories['categories_name'] . '</a></td>' . "\n";
 105        if ((($rows / MAX_DISPLAY_CATEGORIES_PER_ROW) == floor($rows / MAX_DISPLAY_CATEGORIES_PER_ROW)) && ($rows != $number_of_categories)) {
 106          echo '              </tr>' . "\n";
 107          echo '              <tr>' . "\n";
 108        }
 109      }
 110  
 111  // needed for the new products module shown below
 112      $new_products_category_id = $current_category_id;
 113  ?>
 114                </tr>
 115              </table></td>
 116            </tr>
 117            <tr>
 118              <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
 119            </tr>
 120            <tr>
 121              <td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>
 122            </tr>
 123          </table></td>
 124        </tr>
 125      </table></td>
 126  <?php
 127    } elseif ($category_depth == 'products' || isset($HTTP_GET_VARS['manufacturers_id'])) {
 128  // create column list
 129      $define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
 130                           'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
 131                           'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER,
 132                           'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
 133                           'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
 134                           'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
 135                           'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,
 136                           'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);
 137  
 138      asort($define_list);
 139  
 140      $column_list = array();
 141      reset($define_list);
 142      while (list($key, $value) = each($define_list)) {
 143        if ($value > 0) $column_list[] = $key;
 144      }
 145  
 146      $select_column_list = '';
 147  
 148      for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
 149        switch ($column_list[$i]) {
 150          case 'PRODUCT_LIST_MODEL':
 151            $select_column_list .= 'p.products_model, ';
 152            break;
 153          case 'PRODUCT_LIST_NAME':
 154            $select_column_list .= 'pd.products_name, ';
 155            break;
 156          case 'PRODUCT_LIST_MANUFACTURER':
 157            $select_column_list .= 'm.manufacturers_name, ';
 158            break;
 159          case 'PRODUCT_LIST_QUANTITY':
 160            $select_column_list .= 'p.products_quantity, ';
 161            break;
 162          case 'PRODUCT_LIST_IMAGE':
 163            $select_column_list .= 'p.products_image, ';
 164            break;
 165          case 'PRODUCT_LIST_WEIGHT':
 166            $select_column_list .= 'p.products_weight, ';
 167            break;
 168        }
 169      }
 170  
 171  // show the products of a specified manufacturer
 172      if (isset($HTTP_GET_VARS['manufacturers_id'])) {
 173        if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
 174  // We are asked to show only a specific category
 175          $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'";
 176        } else {
 177  // We show them all
 178          $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and pd.products_id = p.products_id and pd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'";
 179        }
 180      } else {
 181  // show the products in a given categorie
 182        if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
 183  // We are asked to show only specific catgeory
 184          $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS . " p left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_MANUFACTURERS . " m, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and m.manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
 185        } else {
 186  // We show them all
 187          $listing_sql = "select " . $select_column_list . " p.products_id, p.manufacturers_id, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, IF(s.status, s.specials_new_products_price, p.products_price) as final_price from " . TABLE_PRODUCTS_DESCRIPTION . " pd, " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c where p.products_status = '1' and p.products_id = p2c.products_id and pd.products_id = p2c.products_id and pd.language_id = '" . (int)$languages_id . "' and p2c.categories_id = '" . (int)$current_category_id . "'";
 188        }
 189      }
 190  
 191      if ( (!isset($HTTP_GET_VARS['sort'])) || (!ereg('[1-8][ad]', $HTTP_GET_VARS['sort'])) || (substr($HTTP_GET_VARS['sort'], 0, 1) > sizeof($column_list)) ) {
 192        for ($i=0, $n=sizeof($column_list); $i<$n; $i++) {
 193          if ($column_list[$i] == 'PRODUCT_LIST_NAME') {
 194            $HTTP_GET_VARS['sort'] = $i+1 . 'a';
 195            $listing_sql .= " order by pd.products_name";
 196            break;
 197          }
 198        }
 199      } else {
 200        $sort_col = substr($HTTP_GET_VARS['sort'], 0 , 1);
 201        $sort_order = substr($HTTP_GET_VARS['sort'], 1);
 202        $listing_sql .= ' order by ';
 203        switch ($column_list[$sort_col-1]) {
 204          case 'PRODUCT_LIST_MODEL':
 205            $listing_sql .= "p.products_model " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
 206            break;
 207          case 'PRODUCT_LIST_NAME':
 208            $listing_sql .= "pd.products_name " . ($sort_order == 'd' ? 'desc' : '');
 209            break;
 210          case 'PRODUCT_LIST_MANUFACTURER':
 211            $listing_sql .= "m.manufacturers_name " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
 212            break;
 213          case 'PRODUCT_LIST_QUANTITY':
 214            $listing_sql .= "p.products_quantity " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
 215            break;
 216          case 'PRODUCT_LIST_IMAGE':
 217            $listing_sql .= "pd.products_name";
 218            break;
 219          case 'PRODUCT_LIST_WEIGHT':
 220            $listing_sql .= "p.products_weight " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
 221            break;
 222          case 'PRODUCT_LIST_PRICE':
 223            $listing_sql .= "final_price " . ($sort_order == 'd' ? 'desc' : '') . ", pd.products_name";
 224            break;
 225        }
 226      }
 227  ?>
 228      <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
 229        <tr>
 230          <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
 231            <tr>
 232              <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
 233  <?php
 234  // optional Product List Filter
 235      if (PRODUCT_LIST_FILTER > 0) {
 236        if (isset($HTTP_GET_VARS['manufacturers_id'])) {
 237          $filterlist_sql = "select distinct c.categories_id as id, cd.categories_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where p.products_status = '1' and p.products_id = p2c.products_id and p2c.categories_id = c.categories_id and p2c.categories_id = cd.categories_id and cd.language_id = '" . (int)$languages_id . "' and p.manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "' order by cd.categories_name";
 238        } else {
 239          $filterlist_sql= "select distinct m.manufacturers_id as id, m.manufacturers_name as name from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c, " . TABLE_MANUFACTURERS . " m where p.products_status = '1' and p.manufacturers_id = m.manufacturers_id and p.products_id = p2c.products_id and p2c.categories_id = '" . (int)$current_category_id . "' order by m.manufacturers_name";
 240        }
 241        $filterlist_query = tep_db_query($filterlist_sql);
 242        if (tep_db_num_rows($filterlist_query) > 1) {
 243          echo '            <td align="center" class="main">' . tep_draw_form('filter', FILENAME_DEFAULT, 'get') . TEXT_SHOW . '&nbsp;';
 244          if (isset($HTTP_GET_VARS['manufacturers_id'])) {
 245            echo tep_draw_hidden_field('manufacturers_id', $HTTP_GET_VARS['manufacturers_id']);
 246            $options = array(array('id' => '', 'text' => TEXT_ALL_CATEGORIES));
 247          } else {
 248            echo tep_draw_hidden_field('cPath', $cPath);
 249            $options = array(array('id' => '', 'text' => TEXT_ALL_MANUFACTURERS));
 250          }
 251          echo tep_draw_hidden_field('sort', $HTTP_GET_VARS['sort']);
 252          while ($filterlist = tep_db_fetch_array($filterlist_query)) {
 253            $options[] = array('id' => $filterlist['id'], 'text' => $filterlist['name']);
 254          }
 255          echo tep_draw_pull_down_menu('filter_id', $options, (isset($HTTP_GET_VARS['filter_id']) ? $HTTP_GET_VARS['filter_id'] : ''), 'onchange="this.form.submit()"');
 256          echo '</form></td>' . "\n";
 257        }
 258      }
 259  
 260  // Get the right image for the top-right
 261      $image = DIR_WS_IMAGES . 'table_background_list.gif';
 262      if (isset($HTTP_GET_VARS['manufacturers_id'])) {
 263        $image = tep_db_query("select manufacturers_image from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['manufacturers_id'] . "'");
 264        $image = tep_db_fetch_array($image);
 265        $image = $image['manufacturers_image'];
 266      } elseif ($current_category_id) {
 267        $image = tep_db_query("select categories_image from " . TABLE_CATEGORIES . " where categories_id = '" . (int)$current_category_id . "'");
 268        $image = tep_db_fetch_array($image);
 269        $image = $image['categories_image'];
 270      }
 271  ?>
 272              <td align="right"><?php echo tep_image(DIR_WS_IMAGES . $image, HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
 273            </tr>
 274          </table></td>
 275        </tr>
 276        <tr>
 277          <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
 278        </tr>
 279        <tr>
 280          <td><?php include(DIR_WS_MODULES . FILENAME_PRODUCT_LISTING); ?></td>
 281        </tr>
 282      </table></td>
 283  <?php
 284    } else { // default page
 285  ?>
 286      <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
 287        <tr>
 288          <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
 289            <tr>
 290              <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
 291              <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_default.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
 292            </tr>
 293          </table></td>
 294        </tr>
 295        <tr>
 296          <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
 297        </tr>
 298        <tr>
 299          <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
 300            <tr>
 301              <td class="main"><?php echo tep_customer_greeting(); ?></td>
 302            </tr>
 303            <tr>
 304              <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
 305            </tr>
 306            <tr>
 307              <td class="main"><?php echo TEXT_MAIN; ?></td>
 308            </tr>
 309            <tr>
 310              <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
 311            </tr>
 312            <tr>
 313              <td><?php include(DIR_WS_MODULES . FILENAME_NEW_PRODUCTS); ?></td>
 314            </tr>
 315  <?php
 316      include(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS);
 317  ?>
 318          </table></td>
 319        </tr>
 320      </table></td>
 321  <?php
 322    }
 323  ?>
 324  <!-- body_text_eof //-->
 325      <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
 326  <!-- right_navigation //-->
 327  <?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
 328  <!-- right_navigation_eof //-->
 329      </table></td>
 330    </tr>
 331  </table>
 332  <!-- body_eof //-->
 333  
 334  <!-- footer //-->
 335  <?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
 336  <!-- footer_eof //-->
 337  <br>
 338  </body>
 339  </html>
 340  <?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>


Généré le : Mon Nov 26 19:48:25 2007 par Balluche grâce à PHPXref 0.7
  Clicky Web Analytics