PageRenderTime 48ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/osCommerce/OM/Core/Site/Admin/Application/manufacturers/classes/manufacturers.php

http://github.com/osCommerce/oscommerce
PHP | 176 lines | 128 code | 36 blank | 12 comment | 23 complexity | 091acc39c372da58143ede85ac4df879 MD5 | raw file
  1. <?php
  2. /*
  3. $Id: $
  4. osCommerce, Open Source E-Commerce Solutions
  5. http://www.oscommerce.com
  6. Copyright (c) 2009 osCommerce
  7. This program is free software; you can redistribute it and/or modify
  8. it under the terms of the GNU General Public License v2 (1991)
  9. as published by the Free Software Foundation.
  10. */
  11. class osC_Manufacturers_Admin {
  12. public static function getData($id, $language_id = null) {
  13. global $osC_Database, $osC_Language;
  14. if ( empty($language_id) ) {
  15. $language_id = $osC_Language->getID();
  16. }
  17. $Qmanufacturers = $osC_Database->query('select m.*, mi.* from :table_manufacturers m, :table_manufacturers_info mi where m.manufacturers_id = :manufacturers_id and m.manufacturers_id = mi.manufacturers_id and mi.languages_id = :languages_id');
  18. $Qmanufacturers->bindTable(':table_manufacturers', TABLE_MANUFACTURERS);
  19. $Qmanufacturers->bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO);
  20. $Qmanufacturers->bindInt(':manufacturers_id', $id);
  21. $Qmanufacturers->bindInt(':languages_id', $language_id);
  22. $Qmanufacturers->execute();
  23. $data = $Qmanufacturers->toArray();
  24. $Qclicks = $osC_Database->query('select sum(url_clicked) as total from :table_manufacturers_info where manufacturers_id = :manufacturers_id');
  25. $Qclicks->bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO);
  26. $Qclicks->bindInt(':manufacturers_id', $id);
  27. $Qclicks->execute();
  28. $data['url_clicks'] = $Qclicks->valueInt('total');
  29. $Qproducts = $osC_Database->query('select count(*) as products_count from :table_products where manufacturers_id = :manufacturers_id');
  30. $Qproducts->bindTable(':table_products', TABLE_PRODUCTS);
  31. $Qproducts->bindInt(':manufacturers_id', $id);
  32. $Qproducts->execute();
  33. $data['products_count'] = $Qproducts->valueInt('products_count');
  34. $Qclicks->freeResult();
  35. $Qproducts->freeResult();
  36. $Qmanufacturers->freeResult();
  37. return $data;
  38. }
  39. public static function save($id = null, $data) {
  40. global $osC_Database, $osC_Language;
  41. $error = false;
  42. $osC_Database->startTransaction();
  43. if ( is_numeric($id) ) {
  44. $Qmanufacturer = $osC_Database->query('update :table_manufacturers set manufacturers_name = :manufacturers_name, last_modified = now() where manufacturers_id = :manufacturers_id');
  45. $Qmanufacturer->bindInt(':manufacturers_id', $id);
  46. } else {
  47. $Qmanufacturer = $osC_Database->query('insert into :table_manufacturers (manufacturers_name, date_added) values (:manufacturers_name, now())');
  48. }
  49. $Qmanufacturer->bindTable(':table_manufacturers', TABLE_MANUFACTURERS);
  50. $Qmanufacturer->bindValue(':manufacturers_name', $data['name']);
  51. $Qmanufacturer->setLogging($_SESSION['module'], $id);
  52. $Qmanufacturer->execute();
  53. if ( !$osC_Database->isError() ) {
  54. if ( is_numeric($id) ) {
  55. $manufacturers_id = $id;
  56. } else {
  57. $manufacturers_id = $osC_Database->nextID();
  58. }
  59. $image = new upload('manufacturers_image', realpath('../' . DIR_WS_IMAGES . 'manufacturers'));
  60. if ( $image->exists() ) {
  61. if ( $image->parse() && $image->save() ) {
  62. $Qimage = $osC_Database->query('update :table_manufacturers set manufacturers_image = :manufacturers_image where manufacturers_id = :manufacturers_id');
  63. $Qimage->bindTable(':table_manufacturers', TABLE_MANUFACTURERS);
  64. $Qimage->bindValue(':manufacturers_image', $image->filename);
  65. $Qimage->bindInt(':manufacturers_id', $manufacturers_id);
  66. $Qimage->setLogging($_SESSION['module'], $manufacturers_id);
  67. $Qimage->execute();
  68. if ( $osC_Database->isError() ) {
  69. $error = true;
  70. }
  71. }
  72. }
  73. } else {
  74. $error = true;
  75. }
  76. if ( $error === false ) {
  77. foreach ( $osC_Language->getAll() as $l ) {
  78. if ( is_numeric($id) ) {
  79. $Qurl = $osC_Database->query('update :table_manufacturers_info set manufacturers_url = :manufacturers_url where manufacturers_id = :manufacturers_id and languages_id = :languages_id');
  80. } else {
  81. $Qurl = $osC_Database->query('insert into :table_manufacturers_info (manufacturers_id, languages_id, manufacturers_url) values (:manufacturers_id, :languages_id, :manufacturers_url)');
  82. }
  83. $Qurl->bindTable(':table_manufacturers_info', TABLE_MANUFACTURERS_INFO);
  84. $Qurl->bindInt(':manufacturers_id', $manufacturers_id);
  85. $Qurl->bindInt(':languages_id', $l['id']);
  86. $Qurl->bindValue(':manufacturers_url', $data['url'][$l['id']]);
  87. $Qurl->setLogging($_SESSION['module'], $manufacturers_id);
  88. $Qurl->execute();
  89. if ( $osC_Database->isError() ) {
  90. $error = true;
  91. break;
  92. }
  93. }
  94. }
  95. if ( $error === false ) {
  96. $osC_Database->commitTransaction();
  97. osC_Cache::clear('manufacturers');
  98. return true;
  99. }
  100. $osC_Database->rollbackTransaction();
  101. return false;
  102. }
  103. public static function delete($id, $delete_image = false, $delete_products = false) {
  104. global $osC_Database;
  105. if ( $delete_image === true ) {
  106. $Qimage = $osC_Database->query('select manufacturers_image from :table_manufacturers where manufacturers_id = :manufacturers_id');
  107. $Qimage->bindTable(':table_manufacturers', TABLE_MANUFACTURERS);
  108. $Qimage->bindInt(':manufacturers_id', $id);
  109. $Qimage->execute();
  110. if ( $Qimage->numberOfRows() && !osc_empty($Qimage->value('manufacturers_image')) ) {
  111. if ( file_exists(realpath('../' . DIR_WS_IMAGES . 'manufacturers/' . $Qimage->value('manufacturers_image'))) ) {
  112. @unlink(realpath('../' . DIR_WS_IMAGES . 'manufacturers/' . $Qimage->value('manufacturers_image')));
  113. }
  114. }
  115. }
  116. if ( $delete_products === true ) {
  117. $Qproducts = $osC_Database->query('select products_id from :table_products where manufacturers_id = :manufacturers_id');
  118. $Qproducts->bindTable(':table_products', TABLE_PRODUCTS);
  119. $Qproducts->bindInt(':manufacturers_id', $id);
  120. $Qproducts->execute();
  121. while ( $Qproducts->next() ) {
  122. osC_Products_Admin::delete($Qproducts->valueInt('products_id'));
  123. }
  124. }
  125. $Qm = $osC_Database->query('delete from :table_manufacturers where manufacturers_id = :manufacturers_id');
  126. $Qm->bindTable(':table_manufacturers', TABLE_MANUFACTURERS);
  127. $Qm->bindInt(':manufacturers_id', $id);
  128. $Qm->setLogging($_SESSION['module'], $id);
  129. $Qm->execute();
  130. if ( !$osC_Database->isError() ) {
  131. osC_Cache::clear('manufacturers');
  132. return true;
  133. }
  134. return false;
  135. }
  136. }
  137. ?>