Autor | Zpráva | ||
---|---|---|---|
Charles de Gol Profil * |
#1 · Zasláno: 6. 8. 2008, 10:20:27
Dobrý den, mám takový problém. Dostal jsem v práci upravit jeden administrační systém, ale trošku se v něm ztrácím, protože je naprogramován v OOP. Tento systém tady někdo vytvořil a teď ho implementují na všechny stránky. Každá stránka chce ale nějak přizpůsobit a proto se provádějí změny. Já mam problém s tím, že se mi nezobrazují akční ceny. Nevím asi toho chci moc, ale pokud by byl někdo schopný mi poradit byl bych mu vděčný. Napíšu sem kusy tříd o kterých si myslim, že s tim mají něco společného. Pokud je nutná ještě nějaká, doplním co nejdřív.
soubor complete.tpl (obsah nákupního košíku) {foreach from=$cart->getItems() item="item"}... Cena bez DPH: <h2>{$item->abc}</h2> {/foreach} třída Cart soubor cart.php public function getItems() { return $this->items; } public function getContent() $items = $this->getItems(); $content = array(); $totalPrice = 0; $totalPriceVat = 0; $totalPriceWithVat = 0; foreach ($items as $key => $item) { $product = new Product(); $product->setId($key); $product->load(); $product->loadVariations(); $export = $product->export(false, true); $export['quantity'] = $item; if ($item['variations']) { foreach ($item['variations'] as $vid => $foo) { $variation = new ProductVariation($vid); $variation->load(); $items[$key]['variations'][$variation->getId()]['price'] = $variation->getPrice(); $items[$key]['variations'][$variation->getId()]['priceVat'] = $variation->getPriceVat(); $items[$key]['variations'][$variation->getId()]['priceWithVat'] = $variation->getPriceWithVat(); $items[$key]['variations'][$variation->getId()]['actionPrice'] = $variation->getActionPrice(); $items[$key]['variations'][$variation->getId()]['actionPriceVat'] = $variation->getActionPriceVat(); $items[$key]['variations'][$variation->getId()]['actionPriceWithVat'] = $variation->getActionPriceWithVat(); $items[$key]['variations'][$variation->getId()]['amountPrice'] = $quantity * $variation->getPrice(); $items[$key]['variations'][$variation->getId()]['amountPriceVat'] = $quantity * $variation->getPriceVat(); $items[$key]['variations'][$variation->getId()]['amountPriceWithV at'] = $quantity * $variation->getPriceWithVat(); $this->totalPrice += $quantity * $variation->getPrice(); $this->totalPriceVat += $quantity * $variation->getPriceVat(); $this->totalPriceWithVat += $quantity * $variation->getPriceWithVat(); } } $export['amountPrice'] = $export['quantity']['quantity'] * $export['price']; $export['amountPriceVat'] = $export['quantity']['quantity'] * $export['priceVat']; $export['amountPriceWithVat'] = $export['quantity']['quantity'] * $export['priceWithVat']; $this->totalPrice += $export['amountPrice']; $this->totalPriceVat += $export['amountPriceVat']; $this->totalPriceWithVat += $export['amountPriceWithVat']; $content[] = $export; } return $content; } třída product soubor product.php public function load() { // Query $q = "SELECT * FROM " . IW_TABLE_SHOP_PRODUCT . " WHERE `id` = {$this->getID()}"; $conn = Connector::getConnector(); $data = $conn->fetchRow($q); // Product not found --- redirect to 404 if ($data === false) { return false; } // Fill properties $this->import($data); // Fill parameters $q = "SELECT parameter, value, applied, `order` FROM ".IW_TABLE_SHOP_PARAM_TO_PRODUCT. " WHERE product = {$this->getID()} AND variation = 0 ORDER BY `order` ASC"; $this->setParameters('db', $conn->fetchAssocAll($q, 'parameter')); return true; } třída productVariation soubor productVariantion.php public function load() { $conn = Connector::getConnector(); $q = "SELECT * FROM " . IW_TABLE_PRODUCT_VARIATION . " WHERE Id = " . $this->getId(); $data = $conn->fetchRow($q); // Load prices $last = $conn->fetchRow("SELECT * FROM ".IW_TABLE_PRICE." ORDER BY ValidSince DESC LIMIT 1"); $this->import('db', $data); // Fill parameters $q = 'SELECT * FROM ' . IW_TABLE_SHOP_PARAM_TO_PRODUCT . ' WHERE variation = ' . $this->getId(); $this->setParameters('db', $conn->fetchAssocAll($q, 'parameter')); } public function import($source, $data) { switch($source) { case 'db': { $this->setId($data['Id']); $this->setProduct($data['Product']); $this->setTitle($data['Title']); $this->setBarcode($data['Barcode']); $this->setVatPercentage($data['VatPercentage']); $this->setPrice($data['Price']); $this->setActionPrice($data['ActionPrice']); $this->setActionPriceVat($data['actionPriceVat']); $this->setActionPrice(isset($data['IsActionOffer']) ? $data['ActionPrice'] : 0); break; } } |
||
Charles de Gol Profil * |
#2 · Zasláno: 6. 8. 2008, 10:21:49
Nebo pokud by byl někdo tak hodný a schopný mi zkusit poradit třeba na ICQ a já bych mu mohl poslat celé soubory
ICQ 223885285 |
||
Hab45 Profil * |
#3 · Zasláno: 6. 8. 2008, 13:19:21
Vypisal by si tu class: Connector?
Chcem sa tam na nieco pozriet, lebo zrejme nieco tam zistim. |
||
Charles de Gol Profil * |
#4 · Zasláno: 6. 8. 2008, 21:02:26
class Connector {
/** * Query * * @var string */ public $q; /** * Statement for execute() * @var array List of SQL queries to execute */ public $statement; private $dbPassword; private $dbUser; private $dbName; private $dbServer; private $conn; private $result; private $err_handler; private $log_query; private $insert_addslashes; /** * Get connector * Create and return connector object connected to database * @return Connector $connector Database abstraction layer */ public static function getConnector() { $dsn['host'] = IW_DATABASE_HOST; $dsn['name'] = IW_DATABASE_NAME; $dsn['password'] = IW_DATABASE_PASSWORD; $dsn['user'] = IW_DATABASE_USER; return new Connector($dsn); } /** * Connector constructor * @param array $dsn Data source name */ private function __construct($dsn) { // Parse DSN $this->dbServer = $dsn['host']; $this->dbName = $dsn['name']; $this->dbUser = $dsn['user']; $this->dbPassword = $dsn['password']; // Connect $this->connect(); // Encoding patch for MySQL version 4.1 if(version_compare(phpversion(), "4.3.10", ">=")>0) { $result = @mysql_query("SHOW VARIABLES LIKE 'version'"); $row = mysql_fetch_row($result); $mysql_ver = $row[1]; if(version_compare($mysql_ver, '4.1.0', '>=')>0) { $i = 1; while(defined('DB_INIT_CODE_'.$i)) { $sQuery = constant('DB_INIT_CODE_'.$i); mysql_query($sQuery); $i++; } } } } private function connect() { // Connect if (!$this->conn = @mysql_pconnect($this->dbServer, $this->dbUser, $this->dbPassword)) { throw new DatabaseError('Nepodařilo se připojit k databázovému serveru.', 0, 'Connection', mysql_error()); } // Select database if (!@mysql_select_db($this->dbName, $this->conn)) { throw new DatabaseError("Nepodařilo se zvolit databázi ({$this->dbName}).", 0, 'Database selection', mysql_error($this->conn)); } } function fetchRow($q) { $result = $this->query($q); // Some result if ($result) { $row = mysql_fetch_assoc($result); mysql_free_result($result); return($row); } // Nothing else { return false; } } |
||
Hab45 Profil * |
#5 · Zasláno: 6. 8. 2008, 21:28:18
Cez <pre> by som to nevypisal? Bolo by to prehladnejsie. |
||
Časová prodleva: 16 let
|
0