/administrator/components/com_joomap/classes/JoomapConfig.php

https://github.com/shafiqissani/Jewelery-Ecommerce- · PHP · 205 lines · 158 code · 29 blank · 18 comment · 14 complexity · 2be023c82405b93ac18897080ea05835 MD5 · raw file

  1. <?php
  2. /**
  3. * The Joomap Config
  4. * @author Daniel Grothe
  5. * @version $Id: JoomapConfig.php 12 2008-08-17 20:51:27Z koders.de $
  6. */
  7. defined( '_JEXEC' ) or die( 'Direct Access to this location is not allowed.' );
  8. /**
  9. * Wraps all configuration functions for Joomap
  10. */
  11. class JoomapConfig {
  12. var $version = '2.0';
  13. var $classname = 'sitemap';
  14. var $expand_category = 1;
  15. var $expand_section = 1;
  16. var $show_menutitle = 1;
  17. var $columns = 1;
  18. var $exlinks = 1;
  19. var $ext_image = 'img_grey.gif';
  20. var $menus = "mainmenu,0,1\nothermenu,1,1";
  21. var $exclmenus = '';
  22. var $includelink = 0;
  23. /** Return $menus as an associative array */
  24. function &getMenus() {
  25. $lines = explode("\n", $this->menus);
  26. $menus = array();
  27. foreach( $lines as $line ) {
  28. list( $menutype, $ordering, $show ) = explode(',', $line);
  29. $menu = new stdclass;
  30. $menu->ordering = $ordering;
  31. $menu->show = $show;
  32. $menus[$menutype] = $menu;
  33. }
  34. return $menus;
  35. }
  36. /** Set $menus from an associoative array of menu objects */
  37. function setMenus( &$menus ) {
  38. $lines = array();
  39. foreach( $menus as $menutype => $menu ) {
  40. $show = $menu->show ? '1' : '0';
  41. $lines[] = $menutype.','.$menu->ordering.','.$show;
  42. }
  43. $this->menus = implode("\n", $lines);
  44. }
  45. /** Create the settings table for Joomap and add initial default values */
  46. function create() {
  47. $database =& JFactory::getDBO();
  48. $fields = array();
  49. $vars = get_class_vars('JoomapConfig');
  50. foreach($vars as $name => $value) {
  51. switch( gettype( $value ) ) {
  52. case 'integer':
  53. $fields[] = "`$name` INTEGER NULL";
  54. break;
  55. case 'string':
  56. if( $name == 'menus')
  57. $fields[] = "`$name` TEXT NULL";
  58. else
  59. $fields[] = "`$name` VARCHAR(255) NULL";
  60. break;
  61. }
  62. }
  63. $query = "CREATE TABLE IF NOT EXISTS #__joomap (". implode(', ', $fields) .")";
  64. $database->setQuery( $query );
  65. if( $database->query() === FALSE ) {
  66. echo _JOOMAP_ERR_NO_CREATE . "<br />\n";
  67. echo $database->getErrorMsg();
  68. return false;
  69. }
  70. echo _JOOMAP_MSG_SET_DB_CREATED . "<br />\n";
  71. // Insert default Settings
  72. $fields = array();
  73. foreach($vars as $name => $value) {
  74. $fields[] = "`$name`='$value'";
  75. }
  76. $query = "INSERT INTO #__joomap SET ". implode(', ', $fields);
  77. $database->setQuery( $query );
  78. if( $database->query() === FALSE ) {
  79. echo _JOOMAP_ERR_NO_DEFAULT_SET . "<br />\n";
  80. echo $database->getErrorMsg();
  81. return false;
  82. }
  83. echo _JOOMAP_MSG_SET_DEF_INSERT . "<br />\n";
  84. return true;
  85. }
  86. /** Create a backup of the settings */
  87. function backup() {
  88. $database =& JFactory::getDBO();
  89. $query = "DROP TABLE IF EXISTS #__joomap_backup"; // remove old backup
  90. $database->setQuery( $query );
  91. if( $database->query() === FALSE ) {
  92. echo _JOOMAP_ERR_NO_PREV_BU . "<br />\n";
  93. echo $database->getErrorMsg();
  94. }
  95. $query = "CREATE TABLE #__joomap_backup SELECT * FROM #__joomap"; // backup current settings
  96. $database->setQuery( $query );
  97. if( $database->query() === FALSE ) {
  98. echo _JOOMAP_ERR_NO_BACKUP . "<br />\n";
  99. echo $database->getErrorMsg();
  100. return false;
  101. }
  102. return true;
  103. }
  104. /** Restore backup settings */
  105. function restore() {
  106. $database =& JFactory::getDBO();
  107. $query = "SELECT * FROM #__joomap_backup"; // restore backup settings
  108. $database->setQuery($query);
  109. $backup = $database->loadObject();
  110. if (!$backup) {
  111. return false;
  112. }
  113. if (isset($this) && is_object($this) ) {
  114. $config = &$this;
  115. } else {
  116. $config = new JoomapConfig;
  117. }
  118. $vars = get_class_vars('JoomapConfig'); // assign current settings
  119. foreach( $vars as $var => $value ) {
  120. if( isset($backup->$var) )
  121. $config->$var = $backup->$var;
  122. }
  123. return $config->save(); // save current settings
  124. }
  125. /** Remove the settings table */
  126. function remove() {
  127. $database =& JFactory::getDBO();
  128. $query = "DROP TABLE IF EXISTS #__joomap";
  129. $database->setQuery( $query );
  130. if( $database->query() === FALSE ) {
  131. echo _JOOMAP_ERR_NO_DROP_DB . "<br />\n";
  132. echo $database->getErrorMsg();
  133. return false;
  134. }
  135. echo _JOOMAP_MSG_SET_DB_DROPPED . "<br />\n";
  136. }
  137. /** Load settings from the database into this instance */
  138. function load() {
  139. $database =& JFactory::getDBO();
  140. $query = "SELECT * FROM #__joomap";
  141. $database->setQuery( $query );
  142. $cfg = $database->loadAssoc();
  143. if (is_array($cfg)) {
  144. foreach ($cfg as $key => $val) {
  145. $this->$key = $val;
  146. }
  147. }
  148. return is_array($cfg);
  149. }
  150. /** Save current settings to the database */
  151. function save() {
  152. $database =& JFactory::getDBO();
  153. $fields = array();
  154. $vars = get_object_vars( $this );
  155. foreach($vars as $name => $value) {
  156. $fields[] = "`{$name}`='{$value}'";
  157. }
  158. $query = "UPDATE #__joomap SET ". implode(', ', $fields);
  159. $database->setQuery( $query );
  160. if( $database->query() === FALSE ) {
  161. echo $database->getErrorMsg();
  162. return false;
  163. }
  164. return true;
  165. }
  166. /** Debug output of current settings */
  167. function dump() {
  168. $vars = get_object_vars( $this );
  169. echo '<pre style="text-align:left">';
  170. foreach( $vars as $name => $value ) {
  171. echo $name.': '.$value."\n";
  172. }
  173. echo '</pre>';
  174. }
  175. };
  176. ?>