PageRenderTime 63ms CodeModel.GetById 15ms RepoModel.GetById 1ms app.codeStats 0ms

/plugins/backupbuddy/views/settings/_includeexclude.php

https://gitlab.com/mattswann/launch-housing
PHP | 227 lines | 152 code | 59 blank | 16 comment | 48 complexity | 7f4e4a92dc55389e312904ae217cc2a1 MD5 | raw file
  1. <?php
  2. if ( !is_admin() ) { die( 'Access Denied.' ); }
  3. if ( is_numeric( pb_backupbuddy::_GET( 'profile' ) ) ) {
  4. $profile = pb_backupbuddy::_GET( 'profile' );
  5. if ( ! isset( pb_backupbuddy::$options['profiles'][$profile] ) ) {
  6. die( 'Error #565676756b. Invalid profile ID index.' );
  7. }
  8. } else {
  9. die( 'Error #57434. Invalid profile ID index. Not numeric.' );
  10. }
  11. // Defaults
  12. pb_backupbuddy::$options['profiles'][$profile] = array_merge( pb_backupbuddy::settings( 'profile_defaults' ), pb_backupbuddy::$options['profiles'][$profile] );
  13. ?>
  14. <script type="text/javascript">
  15. var pb_settings_changed = false;
  16. jQuery(document).ready(function() {
  17. jQuery( '.pb_form' ).change( function() {
  18. var win = window.dialogArguments || opener || parent || top;
  19. win.pb_settings_changed = true;
  20. });
  21. jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__profile_globaltables' ).click( function() {
  22. if ( jQuery(this).is(':checked') ) {
  23. hide_tables();
  24. } else {
  25. jQuery(this).closest('tr').next('tr').show();
  26. jQuery(this).closest('tr').next('tr').next('tr').show();
  27. if ( jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__mysqldump_additional_includes' ).val() == '-1' ) {
  28. jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__mysqldump_additional_includes' ).val( '' );
  29. }
  30. if ( jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__mysqldump_additional_excludes' ).val() == '-1' ) {
  31. jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__mysqldump_additional_excludes' ).val( '' );
  32. }
  33. }
  34. });
  35. jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__profile_globalexcludes' ).click( function() {
  36. if ( jQuery(this).is(':checked') ) {
  37. hide_excludes();
  38. } else {
  39. jQuery(this).closest('tr').next('tr').show();
  40. jQuery(this).closest('tr').next('tr').next('tr').show();
  41. if ( jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__excludes' ).val() == '-1' ) {
  42. jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__excludes' ).val( '' );
  43. }
  44. }
  45. });
  46. });
  47. function hide_tables() {
  48. jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__profile_globaltables' ).closest('tr').next('tr').hide();
  49. jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__profile_globaltables' ).closest('tr').next('tr').next('tr').hide();
  50. }
  51. function hide_excludes() {
  52. jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__profile_globalexcludes' ).closest('tr').next('tr').hide();
  53. //jQuery( '#pb_backupbuddy_profiles__<?php echo $profile; ?>__profile_globalexcludes' ).closest('tr').next('tr').next('tr').hide();
  54. }
  55. </script>
  56. <?php
  57. // Set defaults.
  58. /*
  59. print_r( pb_backupbuddy::$options['profiles'][$profile] );
  60. echo '<h3>Editing Profile "' . pb_backupbuddy::$options['profiles'][$profile]['title'] . '":</h3>';
  61. */
  62. ?>
  63. <style>
  64. table {
  65. font-size: 12px;
  66. line-height: 1.6em;
  67. }
  68. /* body > div {
  69. margin: 0 !important;
  70. padding: 0 !important;
  71. }
  72. */
  73. tr {
  74. margin: 0 !important;
  75. padding: 0 !important;
  76. }
  77. </style>
  78. <?php
  79. $settings_form = new pb_backupbuddy_settings( 'profile_settings', '', 'action=pb_backupbuddy_backupbuddy&function=profile_settings&profile=' . $profile, 320 );
  80. if ( pb_backupbuddy::$options['profiles'][$profile]['type'] == 'db' ) {
  81. $prettyType = __( 'Database Only', 'it-l10n-backupbuddy' );
  82. } elseif ( pb_backupbuddy::$options['profiles'][$profile]['type'] == 'full' ) {
  83. $prettyType = __( 'Full', 'it-l10n-backupbuddy' );
  84. } elseif( pb_backupbuddy::$options['profiles'][$profile]['type'] == 'files' ) {
  85. $prettyType = __( 'Files Only', 'it-l10n-backupbuddy' );
  86. } else {
  87. $prettyType = 'unknown(' . htmlentities( pb_backupbuddy::$options['profiles'][$profile]['type'] ). ')';
  88. }
  89. $settings_form->add_setting( array(
  90. 'type' => 'title',
  91. 'name' => 'title_type',
  92. 'title' => $prettyType . ' Profile',
  93. ) );
  94. $settings_form->add_setting( array(
  95. 'type' => 'text',
  96. 'name' => 'profiles#' . $profile . '#title',
  97. 'title' => __('Profile Name', 'it-l10n-backupbuddy' ),
  98. 'tip' => __('Enter a descriptive profile name for this profile for your use.', 'it-l10n-backupbuddy' ),
  99. 'rules' => 'required|string[0-75]',
  100. ) );
  101. // Database Settings
  102. if ( 'files' != pb_backupbuddy::$options['profiles'][$profile]['type'] ) {
  103. $settings_form->add_setting( array(
  104. 'type' => 'title',
  105. 'name' => 'title_database',
  106. 'title' => __( 'Database', 'it-l10n-backupbuddy' ),
  107. ) );
  108. require_once( pb_backupbuddy::plugin_path() . '/views/settings/_database.php' );
  109. }
  110. // Full / Files Settings
  111. if ( ( 'full' == pb_backupbuddy::$options['profiles'][$profile]['type'] ) || ( 'files' == pb_backupbuddy::$options['profiles'][$profile]['type'] ) ){
  112. $settings_form->add_setting( array(
  113. 'type' => 'title',
  114. 'name' => 'title_files',
  115. 'title' => __( 'Files & Directories', 'it-l10n-backupbuddy' ),
  116. ) );
  117. require_once( pb_backupbuddy::plugin_path() . '/views/settings/_files.php' );
  118. }
  119. require_once( pb_backupbuddy::plugin_path() . '/views/settings/_profiles-advanced.php' );
  120. // If global tables then set table includes & excludes to -1.
  121. $field = 'pb_backupbuddy_profiles#' . $profile . '#profile_globaltables';
  122. if ( isset( $_POST[ $field ] ) && ( $_POST[ $field ] == '1' ) ) {
  123. $_POST[ 'pb_backupbuddy_profiles#' . $profile . '#mysqldump_additional_includes' ] = '-1';
  124. $_POST[ 'pb_backupbuddy_profiles#' . $profile . '#mysqldump_additional_excludes' ] = '-1';
  125. }
  126. // If global excludes then set excludes to -1.
  127. $field = 'pb_backupbuddy_profiles#' . $profile . '#profile_globalexcludes';
  128. if ( isset( $_POST[ $field ] ) && ( $_POST[ $field ] == '1' ) ) {
  129. $_POST[ 'pb_backupbuddy_profiles#' . $profile . '#excludes' ] = '-1';
  130. }
  131. $process_result = $settings_form->process(); // Handles processing the submitted form (if applicable).
  132. if ( ( count( (array)$process_result['errors'] ) == 0 ) && ( count( (array)$process_result['data'] ) > 0 ) ) {
  133. $excludes = pb_backupbuddy::_POST( 'pb_backupbuddy_profiles#' . $profile . '#mysqldump_additional_excludes' );
  134. $fileExcludes = backupbuddy_core::alert_core_file_excludes( explode( "\n", trim( $excludes ) ) );
  135. foreach( $fileExcludes as $fileExcludeId => $fileExclude ) {
  136. pb_backupbuddy::disalert( $fileExcludeId, '<span class="pb_label pb_label-important">Warning</span> ' . $fileExclude );
  137. }
  138. if ( count( $fileExcludes ) == 0 ) {
  139. ?>
  140. <script type="text/javascript">
  141. jQuery(document).ready(function() {
  142. var win = window.dialogArguments || opener || parent || top;
  143. win.pb_backupbuddy_profile_updated( '<?php echo $profile; ?>', '<?php echo htmlentities( pb_backupbuddy::$options['profiles'][$profile]['title'] ); ?>' );
  144. win.tb_remove();
  145. });
  146. </script>
  147. <?php
  148. }
  149. }
  150. $settings_form->display_settings( 'Save Profile Settings' );
  151. if ( $profile > 2 ) {
  152. ?>
  153. <a style="float: right; margin-top: -35px; margin-right: 10px;" class="button secondary-button" title="Delete this Profile" href="admin.php?page=pb_backupbuddy_backup&delete_profile=<?php echo $profile; ?>" target="_blank" onclick="
  154. if ( !confirm( 'Are you sure you want to delete this profile?' ) ) {
  155. return false;
  156. }
  157. ">Delete Profile</a>
  158. <?php } ?>
  159. <script type="text/javascript">
  160. <?php
  161. if( pb_backupbuddy::$options['profiles'][$profile]['profile_globaltables'] == '1' ) {
  162. echo "hide_tables();\n";
  163. }
  164. if( pb_backupbuddy::$options['profiles'][$profile]['profile_globalexcludes'] == '1' ) {
  165. echo "hide_excludes();\n";
  166. }
  167. ?>
  168. </script>