Changeset 1769
- Timestamp:
- 04/04/08 06:08:04 (23 months ago)
- Location:
- branches/release-33/lib
- Files:
-
- 5 modified
-
MT.pm.pre (modified) (1 diff)
-
MT/App.pm (modified) (2 diffs)
-
MT/ConfigMgr.pm (modified) (4 diffs)
-
MT/ObjectDriver/Driver/DBD/Pg.pm (modified) (2 diffs)
-
MT/ObjectDriver/Driver/DBD/mysql.pm (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/release-33/lib/MT.pm.pre
r1716 r1769 2684 2684 } 2685 2685 2686 sub DESTROY { 2687 # save_config here so not to miss any dirty config change to persist 2688 # particulary for those which does not construct MT::App. 2689 $_[0]->config->save_config(); 2690 } 2691 2686 2692 1; 2687 2693 -
branches/release-33/lib/MT/App.pm
r1719 r1769 2387 2387 } 2388 2388 2389 # save_config here so not to miss any dirty config change to persist 2390 $app->config->save_config(); 2391 2389 2392 $app->request->finish; 2390 2393 delete $app->{request}; … … 3066 3069 MT::Request->finish(); 3067 3070 undef $MT::Object::DRIVER; 3071 undef $MT::Object::DBI_DRIVER; 3068 3072 undef $MT::ConfigMgr::cfg; 3069 3073 } -
branches/release-33/lib/MT/ConfigMgr.pm
r1174 r1769 17 17 18 18 sub new { 19 my $mgr = bless { __var => { }, __dbvar => { }, __paths => [] }, $_[0];19 my $mgr = bless { __var => { }, __dbvar => { }, __paths => [], __dirty => 0 }, $_[0]; 20 20 $mgr->init; 21 21 $mgr; … … 162 162 $mgr->{$set}{$var} = $val; 163 163 } 164 $mgr->set_dirty() if defined($_[2]) && $_[2]; 164 165 } 165 166 … … 186 187 } 187 188 189 sub set_dirty { 190 my $mgr = shift; 191 $mgr = $mgr->instance unless ref($mgr); 192 $mgr->{__dirty} = 1; 193 } 194 195 sub clear_dirty { 196 my $mgr = shift; 197 $mgr = $mgr->instance unless ref($mgr); 198 $mgr->{__dirty} = 0; 199 } 200 201 sub is_dirty { 202 my $mgr = shift; 203 $mgr = $mgr->instance unless ref($mgr); 204 $mgr->{__dirty}; 205 } 206 188 207 sub save_config { 189 208 my $class = shift; 190 209 my $mgr = $class->instance; 210 return 0 unless $mgr->is_dirty(); 191 211 my $data = ''; 192 212 my $settings = $mgr->{__dbvar}; … … 220 240 $config->data($data); 221 241 $config->save or die $config->errstr; 242 $mgr->clear_dirty; 243 1; 222 244 } 223 245 -
branches/release-33/lib/MT/ObjectDriver/Driver/DBD/Pg.pm
r1174 r1769 107 107 local $@; 108 108 if (!$dbh->do("SET NAMES '" . $c . "'")) { 109 # 'set names' command isn't working for this verison of mysql,109 # 'set names' command isn't working for this verison of PostgreSQL, 110 110 # assign SQLSetNames to 0 to prevent further errors. 111 111 $cfg->SQLSetNames(0, 1); 112 $cfg->save_config;113 112 return 0; 114 113 } else { … … 117 116 # 'SET NAMES' command, so it's safe to SET NAMES in the future. 118 117 $cfg->SQLSetNames(1, 1); 119 $cfg->save_config;120 118 } 121 119 } -
branches/release-33/lib/MT/ObjectDriver/Driver/DBD/mysql.pm
r1174 r1769 77 77 # 'SET NAMES' command, so it's safe to SET NAMES in the future. 78 78 $cfg->SQLSetNames(1, 1); 79 $cfg->save_config;80 79 } 81 80 } else { … … 83 82 # assign SQLSetNames to 0 to prevent further errors. 84 83 $cfg->SQLSetNames(0, 1); 85 $cfg->save_config;86 84 return 0; 87 85 }
