product_attributes.php

来自「this the oscommerce 3.0 aplha 4」· PHP 代码 · 共 299 行

PHP
299
字号
<?php/*  $Id: $  osCommerce, Open Source E-Commerce Solutions  http://www.oscommerce.com  Copyright (c) 2007 osCommerce  This program is free software; you can redistribute it and/or modify  it under the terms of the GNU General Public License v2 (1991)  as published by the Free Software Foundation.*/  class osC_ProductAttributes_Admin {    function getData($id, $language_id = null, $key = null) {      global $osC_Database, $osC_Language;      if ( empty($language_id) ) {        $language_id = $osC_Language->getID();      }      $Qgroup = $osC_Database->query('select * from :table_products_options where products_options_id = :products_options_id and language_id = :language_id');      $Qgroup->bindTable(':table_products_options', TABLE_PRODUCTS_OPTIONS);      $Qgroup->bindInt(':products_options_id', $id);      $Qgroup->bindInt(':language_id', $language_id);      $Qgroup->execute();      $data = $Qgroup->toArray();      $Qentries = $osC_Database->query('select count(*) as total_entries from :table_products_options_values_to_products_options where products_options_id = :products_options_id');      $Qentries->bindTable(':table_products_options_values_to_products_options', TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS);      $Qentries->bindInt(':products_options_id', $id);      $Qentries->execute();      $data['total_entries'] = $Qentries->valueInt('total_entries');      $Qproducts = $osC_Database->query('select count(*) as total_products from :table_products_attributes where options_id = :options_id');      $Qproducts->bindTable(':table_products_attributes', TABLE_PRODUCTS_ATTRIBUTES);      $Qproducts->bindInt(':options_id', $id);      $Qproducts->execute();      $data['total_products'] = $Qproducts->valueInt('total_products');      $Qproducts->freeResult();      $Qentries->freeResult();      $Qgroup->freeResult();      if ( empty($key) ) {        return $data;      } else {        return $data[$key];      }    }    function save($id = null, $data) {      global $osC_Database, $osC_Language;      $error = false;      if ( is_numeric($id) ) {        $group_id = $id;      } else {        $Qcheck = $osC_Database->query('select max(products_options_id) as products_options_id from :table_products_options');        $Qcheck->bindTable(':table_products_options', TABLE_PRODUCTS_OPTIONS);        $Qcheck->execute();        $group_id = $Qcheck->valueInt('products_options_id') + 1;      }      $osC_Database->startTransaction();      foreach ( $osC_Language->getAll() as $l ) {        if ( is_numeric($id) ) {          $Qgroup = $osC_Database->query('update :table_products_options set products_options_name = :products_options_name where products_options_id = :products_options_id and language_id = :language_id');        } else {          $Qgroup = $osC_Database->query('insert into :table_products_options (products_options_id, language_id, products_options_name) values (:products_options_id, :language_id, :products_options_name)');        }        $Qgroup->bindTable(':table_products_options', TABLE_PRODUCTS_OPTIONS);        $Qgroup->bindInt(':products_options_id', $group_id);        $Qgroup->bindValue(':products_options_name', $data['name'][$l['id']]);        $Qgroup->bindInt(':language_id', $l['id']);        $Qgroup->setLogging($_SESSION['module'], $group_id);        $Qgroup->execute();        if ( $osC_Database->isError() ) {          $error = true;          break;        }      }      if ( $error === false ) {        $osC_Database->commitTransaction();        return true;      }      $osC_Database->rollbackTransaction();      return false;    }    function delete($id) {      global $osC_Database;      $error = false;      $osC_Database->startTransaction();      $Qentries = $osC_Database->query('select products_options_values_id from :table_products_options_values_to_products_options where products_options_id = :products_options_id');      $Qentries->bindTable(':table_products_options_values_to_products_options', TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS);      $Qentries->bindInt(':products_options_id', $id);      $Qentries->execute();      while ( $Qentries->next() ) {        $Qdelete = $osC_Database->query('delete from :table_products_options_values where products_options_values_id = :products_options_values_id');        $Qdelete->bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);        $Qdelete->bindInt(':products_options_values_id', $Qentries->valueInt('products_options_values_id'));        $Qdelete->setLogging($_SESSION['module'], $id);        $Qdelete->execute();        if ( $osC_Database->isError() ) {          $error = true;          break;        }      }      if ( $error === false ) {        $Qdelete = $osC_Database->query('delete from :table_products_options_values_to_products_options where products_options_id = :products_options_id');        $Qdelete->bindTable(':table_products_options_values_to_products_options', TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS);        $Qdelete->bindInt(':products_options_id', $id);        $Qdelete->setLogging($_SESSION['module'], $id);        $Qdelete->execute();        if ( $osC_Database->isError() ) {          $error = true;          break;        }      }      if ( $error === false ) {        $Qdelete = $osC_Database->query('delete from :table_products_options where products_options_id = :products_options_id');        $Qdelete->bindTable(':table_products_options', TABLE_PRODUCTS_OPTIONS);        $Qdelete->bindInt(':products_options_id', $id);        $Qdelete->setLogging($_SESSION['module'], $id);        $Qdelete->execute();        if ( $osC_Database->isError() ) {          $error = true;          break;        }      }      if ( $error === false ) {        $osC_Database->commitTransaction();        return true;      }      $osC_Database->rollbackTransaction();      return false;    }    function getEntryData($id, $language_id = null) {      global $osC_Database, $osC_Language;      if ( empty($language_id) ) {        $language_id = $osC_Language->getID();      }      $Qentry = $osC_Database->query('select * from :table_products_options_values where products_options_values_id = :products_options_values_id and language_id = :language_id');      $Qentry->bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);      $Qentry->bindInt(':products_options_values_id', $id);      $Qentry->bindInt(':language_id', $language_id);      $Qentry->execute();      $data = $Qentry->toArray();      $Qproducts = $osC_Database->query('select count(*) as total_products from :table_products_attributes where options_values_id = :options_values_id');      $Qproducts->bindTable(':table_products_attributes', TABLE_PRODUCTS_ATTRIBUTES);      $Qproducts->bindInt(':options_values_id', $Qentry->valueInt('products_options_values_id'));      $Qproducts->execute();      $data['total_products'] = $Qproducts->valueInt('total_products');      $Qproducts->freeResult();      $Qentry->freeResult();      return $data;    }    function saveEntry($id = null, $data) {      global $osC_Database, $osC_Language;      $error = false;      if ( is_numeric($id) ) {        $entry_id = $id;      } else {        $Qcheck = $osC_Database->query('select max(products_options_values_id) as products_options_values_id from :table_products_options_values');        $Qcheck->bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);        $Qcheck->execute();        $entry_id = $Qcheck->valueInt('products_options_values_id') + 1;      }      $osC_Database->startTransaction();      foreach ( $osC_Language->getAll() as $l ) {        if ( is_numeric($id) ) {          $Qentry = $osC_Database->query('update :table_products_options_values set products_options_values_name = :products_options_values_name where products_options_values_id = :products_options_values_id and language_id = :language_id');        } else {          $Qentry = $osC_Database->query('insert into :table_products_options_values (products_options_values_id, language_id, products_options_values_name) values (:products_options_values_id, :language_id, :products_options_values_name)');        }        $Qentry->bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);        $Qentry->bindInt(':products_options_values_id', $entry_id);        $Qentry->bindValue(':products_options_values_name', $data['name'][$l['id']]);        $Qentry->bindInt(':language_id', $l['id']);        $Qentry->setLogging($_SESSION['module'], $entry_id);        $Qentry->execute();        if ( $osC_Database->isError() ) {          $error = true;          break;        }      }      if ( $error === false ) {        if ( !is_numeric($id) ) {          $Qlink = $osC_Database->query('insert into :table_products_options_values_to_products_options (products_options_id, products_options_values_id) values (:products_options_id, :products_options_values_id)');          $Qlink->bindTable(':table_products_options_values_to_products_options', TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS);          $Qlink->bindInt(':products_options_id', $data['products_options_id']);          $Qlink->bindInt(':products_options_values_id', $entry_id);          $Qlink->setLogging($_SESSION['module'], $entry_id);          $Qlink->execute();          if ( $osC_Database->isError() ) {            $error = true;          }        }      }      if ( $error === false ) {        $osC_Database->commitTransaction();        return true;      }      $osC_Database->rollbackTransaction();      return false;    }    function deleteEntry($id, $group_id) {      global $osC_Database;      $error = false;      $osC_Database->startTransaction();      $Qentry = $osC_Database->query('delete from :table_products_options_values where products_options_values_id = :products_options_values_id');      $Qentry->bindTable(':table_products_options_values', TABLE_PRODUCTS_OPTIONS_VALUES);      $Qentry->bindInt(':products_options_values_id', $id);      $Qentry->setLogging($_SESSION['module'], $id);      $Qentry->execute();      if ( $osC_Database->isError() ) {        $error = true;      }      if ( $error === false ) {        $Qlink = $osC_Database->query('delete from :table_products_options_values_to_products_options where products_options_id = :products_options_id and products_options_values_id = :products_options_values_id');        $Qlink->bindTable(':table_products_options_values_to_products_options', TABLE_PRODUCTS_OPTIONS_VALUES_TO_PRODUCTS_OPTIONS);        $Qlink->bindInt(':products_options_id', $group_id);        $Qlink->bindInt(':products_options_values_id', $id);        $Qlink->setLogging($_SESSION['module'], $id);        $Qlink->execute();        if ( $osC_Database->isError() ) {          $error = true;        }      }      if ( $error === false ) {        $osC_Database->commitTransaction();        return true;      }      $osC_Database->rollbackTransaction();      return false;    }  }?>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?