~quam-plures-core/quam-plures/qp5_colls-blogs_chaps-cats

« back to all changes in this revision

Viewing changes to qp_inc/blogs/blog_settings.ctrl.php

  • Committer: EdB
  • Date: 2013-03-12 06:26:03 UTC
  • Revision ID: 1912webworks@gmail.com-20130312062603-tnlb5zco5mglydqj
lots of changes in this branch. tested and functional, but not going into merge just yet ...

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
/**
 
3
 * $ctrl_mappings: 'blog_settings' || Blog settings -> {{blog}} -> all except widgets
 
4
 *
 
5
 * @author {@link http://wonderwinds.com/ Ed Bennett}
 
6
 * @author {@link http://daniel.hahler.de/ Daniel HAHLER}
 
7
 * @author {@link http://fplanque.net/ Francois PLANQUE}
 
8
 * @copyright (c) 2009 by {@link http://quamplures.net/ the Quam Plures project}
 
9
 * @license http://www.gnu.org/licenses/gpl.txt GNU General Public License v3
 
10
 * @package blogs
 
11
 */
 
12
if(!defined('QP_MAIN_INIT')) die('fail');
 
13
 
 
14
param_action( 'edit' );
 
15
param( 'tab', 'string', 'general', true );
 
16
 
 
17
// Check permissions on requested blog and autoselect an appropriate blog if necessary.
 
18
// This will prevent a fat error when switching tabs and you have restricted perms on blog properties.
 
19
if( $selected = autoselect_blog( 'blog_properties', 'edit' ) ) // Includes perm check
 
20
{
 
21
        // We have a blog to work on
 
22
        if( set_working_blog( $selected ) ) // set $blog & memorize in user prefs
 
23
        {
 
24
                // Selected a new blog
 
25
                $BlogCache = & get_Cache( 'BlogCache' );
 
26
                $Blog = & $BlogCache->get_by_ID( $blog );
 
27
        }
 
28
 
 
29
        $edited_Blog = & $Blog;
 
30
}
 
31
else
 
32
{
 
33
        // We could not find a blog we have edit perms on... Note: we may still have
 
34
        // permission to edit categories!!
 
35
        // redirect to blog list
 
36
        header_redirect( '?ctrl=blogs' );
 
37
        // EXITED
 
38
        $Messages->add( T_('Sorry, you have no permission to edit blog properties.'), 'error' );
 
39
        $action = 'nil';
 
40
        $tab = '';
 
41
}
 
42
 
 
43
// Needed when generating static page for example
 
44
memorize_param( 'blog', 'integer', -1 );
 
45
 
 
46
if( $tab == 'template' || $tab == 'template_settings' )
 
47
{
 
48
        $TemplateCache = & get_Cache( 'TemplateCache' );
 
49
        $edited_Template = & $TemplateCache->get_by_ID( $Blog->template_ID );
 
50
}
 
51
 
 
52
if( ( $tab == 'perm' || $tab == 'permgroup' ) && ( empty( $blog ) || ! $Blog->advanced_perms ) )
 
53
{
 
54
        // We're trying to access advanced perms but they're disabled!
 
55
        $tab = 'features'; // the screen where you can enable advanced perms
 
56
        if( $action == 'update' )
 
57
        {
 
58
                // make sure we don't update anything here
 
59
                $action = 'edit';
 
60
        }
 
61
}
 
62
 
 
63
// Perform action
 
64
switch( $action )
 
65
{
 
66
        case 'edit':
 
67
        case 'filter1':
 
68
        case 'filter2': // Edit blog form (depending on tab)
 
69
        // Check permissions
 
70
        $current_User->check_perm( 'blog_properties', 'edit', true, $blog );
 
71
        break;
 
72
 
 
73
        case 'update': // Update DB
 
74
        // Check permissions
 
75
        $current_User->check_perm( 'blog_properties', 'edit', true, $blog );
 
76
 
 
77
        switch( $tab )
 
78
        {
 
79
                case 'general':
 
80
                if( $edited_Blog->load_from_Request( array() ) )
 
81
                {
 
82
                        // Commit update to the DB
 
83
                        $edited_Blog->dbupdate();
 
84
                        $Messages->add( T_('The blog settings have been updated'), 'success' );
 
85
                }
 
86
                break;
 
87
 
 
88
                case 'urls':
 
89
                if( $edited_Blog->load_from_Request( array( 'urls' ) ) )
 
90
                {
 
91
                        // Commit update to the DB
 
92
                        $edited_Blog->dbupdate();
 
93
                        $Messages->add( T_('The URL settings have been updated'), 'success' );
 
94
                }
 
95
                break;
 
96
 
 
97
                case 'features':
 
98
                $old_cache_status = $edited_Blog->get_setting( 'cache_enabled' );
 
99
                if( $edited_Blog->load_from_Request( array( 'features', 'pings', 'cache' ) ) )
 
100
                {
 
101
                        // Commit update to the DB
 
102
                        $new_cache_status = $edited_Blog->get_setting( 'cache_enabled' );
 
103
                        $PageCache = new PageCache( $edited_Blog );
 
104
                        if( $old_cache_status == false && $new_cache_status == true )
 
105
                        {
 
106
                                // Caching has been turned ON
 
107
                                if( $PageCache->cache_create() )
 
108
                                {
 
109
                                        $Messages->add( T_('Caching has been enabled for this blog.'), 'success' );
 
110
                                }
 
111
                                else
 
112
                                {
 
113
                                        $Messages->add( T_('Caching could not be enabled for this blog. Check /cache/ folder file permissions.'), 'error' );
 
114
                                        $edited_Blog->set_setting( 'cache_enabled', 0 );
 
115
                                }
 
116
                        }
 
117
                        elseif( $old_cache_status == true && $new_cache_status == false )
 
118
                        {
 
119
                                // Caching has been turned OFF
 
120
                                $PageCache->cache_delete();
 
121
                                $Messages->add( T_('Caching has been disabled for this blog. All cache contents have been purged.'), 'note' );
 
122
                        }
 
123
 
 
124
                        $edited_Blog->dbupdate();
 
125
                        $Messages->add( T_('The blog settings have been updated'), 'success' );
 
126
                }
 
127
                break;
 
128
 
 
129
                case 'template':
 
130
                if( $edited_Blog->load_from_Request( array() ) )
 
131
                {
 
132
                        // Commit update to the DB
 
133
                        $edited_Blog->dbupdate();
 
134
                        $Messages->add( T_('The blog template has been changed.')
 
135
                                .' <a href="'.$admin_url.'?ctrl=blog_settings&amp;tab=template&amp;blog='.$edited_Blog->ID.'">'.T_('Edit...').'</a>', 'success' );
 
136
                        header_redirect( $edited_Blog->gen_blogurl() );
 
137
                }
 
138
                break;
 
139
 
 
140
                case 'template_settings': // Update params/Settings
 
141
                $edited_Template->load_params_from_Request();
 
142
                if( ! param_errors_detected() )
 
143
                {
 
144
                        // Update settings
 
145
                        $edited_Template->dbupdate_settings();
 
146
                        $Messages->add( T_('Template settings have been updated'), 'success' );
 
147
                }
 
148
                $tab = 'template';
 
149
                break;
 
150
 
 
151
                case 'plugin_settings': // Update Plugin params/Settings
 
152
                load_funcs( 'plugins/_plugin.funcs.php' );
 
153
                $Plugins->restart();
 
154
                while( $loop_Plugin = & $Plugins->get_next() )
 
155
                {
 
156
                        $pluginsettings = $loop_Plugin->GetDefaultBlogSettings( $tmp_params = array('for_editing' => true) );
 
157
                        if( empty( $pluginsettings ) )
 
158
                        {
 
159
                                continue;
 
160
                        }
 
161
                        // Loop through settings for this plugin
 
162
                        foreach( $pluginsettings as $set_name => $set_meta )
 
163
                        {
 
164
                                autoform_set_param_from_request( $set_name, $set_meta, $loop_Plugin, 'BlogSettings', $Blog );
 
165
                        }
 
166
                }
 
167
                if( ! param_errors_detected() )
 
168
                {
 
169
                        // Update settings
 
170
                        $Blog->dbupdate();
 
171
                        $Messages->add( T_('Plugin settings have been updated'), 'success' );
 
172
                }
 
173
                break;
 
174
 
 
175
                case 'perm':
 
176
                blog_update_perms( $blog, 'user' );
 
177
                $Messages->add( T_('The blog permissions have been updated'), 'success' );
 
178
                break;
 
179
 
 
180
                case 'permgroup':
 
181
                blog_update_perms( $blog, 'group' );
 
182
                $Messages->add( T_('The blog permissions have been updated'), 'success' );
 
183
                break;
 
184
        }
 
185
 
 
186
        break;
 
187
}
 
188
 
 
189
$AdminUI->set_path( 'blogs', $tab );
 
190
 
 
191
// Display page header, menus & messages
 
192
$AdminUI->set_blog_list_params( 'blog_properties', 'edit', array(
 
193
        'ctrl' => 'blog_settings', 'tab' => $tab, 'action' => 'edit' ), T_('List'), '?ctrl=blogs&amp;blog=0' );
 
194
// Display <html><head>...</head> section (should be done early if actions do not redirect)
 
195
$AdminUI->disp_html_head();
 
196
// Display title, menu, messages, etc... (messages MUST be displayed AFTER the actions)
 
197
$AdminUI->disp_body_top();
 
198
// Begin payload block
 
199
$AdminUI->disp_payload_begin();
 
200
 
 
201
// Display VIEW
 
202
switch( $AdminUI->get_path(1) )
 
203
{
 
204
        case 'general':
 
205
        $next_action = 'update';
 
206
        $AdminUI->disp_view( 'blogs/views/_blog_general.form.php' );
 
207
        break;
 
208
 
 
209
        case 'features':
 
210
        $AdminUI->disp_view( 'blogs/views/_blog_features.form.php' );
 
211
        break;
 
212
 
 
213
        case 'template':
 
214
        $AdminUI->disp_view( 'templates/views/_template_settings.form.php' );
 
215
        $AdminUI->disp_view( 'templates/views/_template_select.view.php' );
 
216
        break;
 
217
 
 
218
        case 'plugin_settings':
 
219
        $AdminUI->disp_view( 'blogs/views/_blog_plugin_settings.form.php' );
 
220
        break;
 
221
 
 
222
        case 'urls':
 
223
        $AdminUI->disp_view( 'blogs/views/_blog_urls.form.php' );
 
224
        break;
 
225
 
 
226
        case 'perm':
 
227
        $AdminUI->disp_view( 'blogs/views/_blog_user_perm.form.php' );
 
228
        break;
 
229
 
 
230
        case 'permgroup':
 
231
        $AdminUI->disp_view( 'blogs/views/_blog_group_perm.form.php' );
 
232
        break;
 
233
}
 
234
 
 
235
// End payload block
 
236
$AdminUI->disp_payload_end();
 
237
// Display body bottom, debug info, close </html>
 
238
$AdminUI->disp_global_footer();
 
239
 
 
240
?>