paristemi
[ class tree: paristemi ] [ index: paristemi ] [ all elements ]

Source for file database.php

Documentation is available at database.php

  1. <?php
  2. /**
  3. * <b>Database Class</b><br />
  4. * The database class is the container class for all database connectivity and functions.
  5. * Includes specific files based on current file directory and creates classes based on specified name.
  6. * @author Kristen O'Brien <kristen_paristemi-com>
  7. * @copyright Copyright 2004, Kristen O'Brien
  8. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  9. * @link http://www.paristemi.com Paristemi Main Site
  10. * @package paristemi
  11. * @subpackage paristemi_database_layer
  12. * @since Build 0.5
  13. * @version Build 0.7
  14. * @filesource
  15. */
  16. /**
  17. * Include the constants file and all of the files in the include list
  18. */
  19. if(ltrim(dirname($_SERVER['SCRIPT_FILENAME'])) == "" || !file_exists($_SERVER['DOCUMENT_ROOT']."/constants.php")) {
  20. if(!file_exists("../constants.php")) { require_once("../public_html/constants.php"); }
  21. else { require_once("../constants.php"); }
  22. }
  23. else { require_once($_SERVER['DOCUMENT_ROOT']."/constants.php"); }
  24. $link_dir = $SERVER_DIRECTORY.$INCLUDE_PATH.$DATABASE_PATH;
  25.  
  26. // Depending on what the name of the directory is,
  27. // add the right database classes and files
  28. $dir = ltrim(dirname($_SERVER['SCRIPT_NAME'])).'/';
  29. switch($dir) {
  30. case '/'.rtrim($SITE_DIRECTORY)
  31. : require_once ($link_dir.$DATABASE_MAIN); require_once ($link_dir.$DATABASE_CAL);
  32. require_once ($link_dir.$DATABASE_MAILINGLIST); require_once($link_dir.$DATABASE_CONTACT);
  33. break;
  34. case '/'.rtrim($MINISTRY_DIR)
  35. : require_once ($link_dir.$DATABASE_ABOUT); require_once ($link_dir.$DATABASE_MULTIMEDIA);
  36. require_once ($link_dir.$DATABASE_CONTACT); require_once ($link_dir.$DATABASE_LOCATION);
  37. break;
  38. case '/'.rtrim($CALENDAR_PATH)
  39. : require_once ($link_dir.$DATABASE_CAL);
  40. require_once ($link_dir.$DATABASE_CONTACT); require_once ($link_dir.$DATABASE_LOCATION);
  41. break;
  42. case '/'.rtrim($CONTACT_DIR)
  43. : require_once ($link_dir.$DATABASE_CONTACT); require_once ($link_dir.$DATABASE_LOCATION);
  44. break;
  45. case '/'.rtrim($LIBRARY_DIR)
  46. : require_once ($link_dir.$DATABASE_LIBRARY);
  47. break;
  48. case '/'.rtrim($LOCATION_DIR)
  49. : require_once ($link_dir.$DATABASE_LOCATION);
  50. break;
  51. case '/'.rtrim($MAILING_LIST_DIR)
  52. : require_once($link_dir.$DATABASE_MAILINGLIST); require_once($link_dir.$DATABASE_MAIN);
  53. break;
  54. case '/'.rtrim($MESSAGES_DIR)
  55. : require_once ($link_dir.$DATABASE_MESSAGES); require_once ($link_dir.$DATABASE_CAL);
  56. require_once ($link_dir.$DATABASE_CONTACT); require_once ($link_dir.$DATABASE_LOCATION);
  57. break;
  58. case '/'.rtrim($MULTIMEDIA_DIR)
  59. : require_once ($link_dir.$DATABASE_MULTIMEDIA);
  60. break;
  61. case '/'.rtrim($MUSIC_DIR)
  62. : require_once ($link_dir.$DATABASE_MUSIC);
  63. break;
  64. case '/'.rtrim($PRAYER_DIR)
  65. : require_once ($link_dir.$DATABASE_PRAYER); require_once ($link_dir.$DATABASE_CONTACT);
  66. break;
  67. case '/'.rtrim($STUDIES_DIR)
  68. : require_once ($link_dir.$DATABASE_STUDIES); require_once ($link_dir.$DATABASE_CAL);
  69. require_once ($link_dir.$DATABASE_CONTACT); require_once ($link_dir.$DATABASE_LOCATION);
  70. break;
  71. case '/'.rtrim($DATABASE_MODIFY)
  72. : require_once ($link_dir.$DATABASE_CAL); require_once ($link_dir.$DATABASE_STUDIES);
  73. require_once ($link_dir.$DATABASE_MESSAGES); require_once ($link_dir.$DATABASE_LOCATION);
  74. require_once ($link_dir.$DATABASE_CONTACT);
  75. break;
  76. case '/'.rtrim($INCLUDE_PATH)
  77. : require_once ($link_dir.$DATABASE_MAIN); require_once ($link_dir.$DATABASE_ABOUT);
  78. require_once ($link_dir.$DATABASE_CAL); require_once ($link_dir.$DATABASE_CONTACT);
  79. require_once ($link_dir.$DATABASE_LOCATION); require_once ($link_dir.$DATABASE_MESSAGES);
  80. require_once ($link_dir.$DATABASE_MULTIMEDIA); require_once ($link_dir.$DATABASE_MUSIC);
  81. require_once ($link_dir.$DATABASE_STUDIES);
  82. require_once ($link_dir.$DATABASE_PRAYER); require_once ($link_dir.$DATABASE_LIBRARY);
  83. require_once ($link_dir.$DATABASE_MAILINGLIST);
  84. break;
  85. default
  86. : require_once ($link_dir.$DATABASE_MAIN); require_once ($link_dir.$DATABASE_ABOUT);
  87. require_once ($link_dir.$DATABASE_CAL); require_once ($link_dir.$DATABASE_CONTACT);
  88. require_once ($link_dir.$DATABASE_LOCATION); require_once ($link_dir.$DATABASE_MESSAGES);
  89. require_once ($link_dir.$DATABASE_MULTIMEDIA); require_once ($link_dir.$DATABASE_MUSIC);
  90. require_once ($link_dir.$DATABASE_STUDIES);
  91. require_once ($link_dir.$DATABASE_PRAYER); require_once ($link_dir.$DATABASE_LIBRARY);
  92. require_once ($link_dir.$DATABASE_MAILINGLIST);
  93. break;
  94. }
  95. /**
  96. * <b>Database Class</b><br />
  97. * The database class is the container class for all database connectivity and functions.
  98. * Includes specific files based on current file directory and creates classes based on specified name.
  99. * @author Kristen O'Brien <kristen_paristemi-com>
  100. * @copyright Copyright 2004, Kristen O'Brien
  101. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  102. * @link http://www.paristemi.com Paristemi Main Site
  103. * @package paristemi
  104. * @subpackage paristemi_database_layer
  105. * @since Build 0.5
  106. * @version Build 0.7
  107. * @filesource
  108. */
  109. class Database {
  110. var $Link;
  111. /**
  112. * Opens a connection to the database.<br />
  113. * Example:
  114. * <code>$db = new Database();</code>
  115. */
  116. function Database() {
  117. $this->Link = mysql_connect($GLOBALS['DATABASE_SERVER'],
  118. $GLOBALS['DATABASE_USER'],
  119. $GLOBALS['DATABASE_PASS'])
  120. or $this->Error('Unable to connect to db server.');
  121. mysql_select_db($GLOBALS['DATABASE_NAME'])
  122. or $this->Error('Unable to select db');
  123. }
  124.  
  125. /**
  126. * Only needed if you want to reconnect to a different database. Otherwise
  127. * the call to mysql_close() occurs when the connection dies.
  128. */
  129. function Close() {
  130. mysql_close($this->Link);
  131. }
  132.  
  133.  
  134. /**
  135. * For internal use.<br />
  136. * Example:
  137. * <code>$this->Error('some string');</code>
  138. */
  139. function Error($str) {
  140. die($str);
  141. }
  142. /**
  143. * Get the database class object for the specified class name.
  144. * @param string $classname The lowercase class name without the preceding "DB_".
  145. * @return mixed The class object for the specified name.
  146. */
  147. function GetClass($classname) {
  148. switch($classname) {
  149. case 'main' : return new DB_Main(); break;
  150. case 'about' : return new DB_About(); break;
  151. case 'cal' : return new DB_Cal(); break;
  152. case 'contact' : return new DB_Contact(); break;
  153. case 'library' : return new DB_Library(); break;
  154. case 'location' : return new DB_Location(); break;
  155. case 'mailinglist' : return new DB_MailingList(); break;
  156. case 'messages' : return new DB_Messages(); break;
  157. case 'multimedia' : return new DB_Multimedia(); break;
  158. case 'music' : return new DB_Music(); break;
  159. case 'prayer' : return new DB_Prayer(); break;
  160. case 'studies' : return new DB_Studies(); break;
  161. }
  162. }
  163. }
  164.  
  165. ?>

Documentation generated on Mon, 10 May 2004 12:08:09 -0700 by phpDocumentor 1.3.0RC3