PageRenderTime 45ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/exchange/code/trunk/administrator/components/com_exchange/adapters/export/jtable.php

https://bitbucket.org/eddieajau/the-art-of-joomla-archive
PHP | 90 lines | 52 code | 8 blank | 30 comment | 3 complexity | 03b6c1ce804e057b88b906bcd01b5c02 MD5 | raw file
  1. <?php
  2. /**
  3. * @version $Id: jtable.php 280 2010-09-18 02:14:15Z eddieajau $
  4. * @package NewLifeInIT
  5. * @subpackage com_exchange
  6. * @copyright Copyright 2005 - 2010 New Life in IT Pty Ltd. All rights reserved.
  7. * @license GNU General Public License version 2 or later.
  8. * @link http://www.theartofjoomla.com
  9. */
  10. // no direct access
  11. defined('_JEXEC') or die;
  12. /**
  13. * @package NewLifeInIT
  14. * @subpackage com_exchange
  15. */
  16. class ExportAdapterJTable
  17. {
  18. /**
  19. * Creates a JTable class
  20. */
  21. function export(&$tables, &$table_fields, &$table_creates, &$options)
  22. {
  23. $buffer = '';
  24. foreach ($tables as $table) {
  25. $buffer .= $this->_createClass($table, $table_fields[$table]);
  26. }
  27. return $buffer;
  28. }
  29. function _createClass(&$table, &$table_fields)
  30. {
  31. $database = &JFactory::getDBO();
  32. $tableName = str_replace($database->getPrefix(), '', $table);
  33. // Try to have a guess at the class name
  34. $parts = explode('_', $tableName, 2);
  35. if (count($parts == 2))
  36. {
  37. $xparts = explode('_', $parts[1]);
  38. $end = '';
  39. foreach ($xparts as $bit) {
  40. $end .= ucfirst(strtolower($bit));
  41. }
  42. $className = ucfirst(strtolower($parts[0])).'Table' . $end;
  43. }
  44. else {
  45. $className = ucfirst(strtolower($parts[0])).'Table' . ucfirst(strtolower($parts[0]));
  46. }
  47. $buffer = "\n/**";
  48. $buffer .= "\n * @package x";
  49. $buffer .= "\n * @subpackage y";
  50. $buffer .= "\n */";
  51. $buffer .= "\nclass $className extends JTable\n{";
  52. foreach ($table_fields as $k=>$v) {
  53. $buffer .= "\n";
  54. $buffer .= "\n /**";
  55. $buffer .= "\n * @var $v";
  56. $buffer .= "\n */";
  57. $buffer .= "\n var \$$k = null;";
  58. }
  59. $buffer .= "\n\n /*";
  60. $buffer .= "\n * Constructor";
  61. $buffer .= "\n *";
  62. $buffer .= "\n * @param object Database object";
  63. $buffer .= "\n *";
  64. $buffer .= "\n * @return $className";
  65. $buffer .= "\n * @since 1.0";
  66. $buffer .= "\n */";
  67. $buffer .= "\n function __construct(&\$db)\n {";
  68. $buffer .= "\n parent::__construct('#__$tableName', 'id', \$db);";
  69. $buffer .= "\n }";
  70. $buffer .= "\n\n /*";
  71. $buffer .= "\n * Check the internal data for of the object.";
  72. $buffer .= "\n *";
  73. $buffer .= "\n * @return boolean";
  74. $buffer .= "\n * @since 1.0";
  75. $buffer .= "\n */";
  76. $buffer .= "\n function check()\n {";
  77. $buffer .= "\n return true;";
  78. $buffer .= "\n }";
  79. $buffer .= "\n}\n";
  80. return $buffer;
  81. }
  82. }