XPressME Integration Kit

Trac

source: branches/Ver2.1/xpressme_integration_kit/wp-content/plugins/xpressme/xpressme.php @ 402

Last change on this file since 402 was 402, checked in by toemon, 15 years ago

WPMUでのメディアアップロード先をWordPressのアップロード先に固定 Fixes #224

File size: 16.7 KB
Line 
1<?php
2/*
3Plugin Name: Plugin for XPressME
4Plugin URI: http://ja.xpressme.info
5Description: Plugin for XPressME (custom function,filter,action)
6Author: toemon
7Version: 1.0
8Author URI: http://ja.xpressme.info
9*/
10require_once('xpressme_class.php');
11
12require_once dirname( __FILE__ ).'/include/custom_functions.php' ;              // XPressME functions for themes
13require_once dirname( __FILE__ ).'/include/xpress_common_functions.php' ;
14
15$xoops_db = new wpdb(DB_USER, DB_PASSWORD, DB_NAME, DB_HOST);
16$xoops_db->prefix = get_xoops_prefix();
17$xoops_db->tables = array('modules', 'newblocks', 'users');
18
19$xpress_config = new XPressME_Class();
20
21require_once dirname( __FILE__ ).'/include/pluggable-override.php' ;
22require_once dirname( __FILE__ ).'/include/functions_for_wp_old.php' ;
23
24function my_plugin_menu()
25{
26        global $xpress_config,$xoops_config;
27       
28        $plugin_url = WP_PLUGIN_URL."/xpressme/";
29
30        // Add a new top-level menu:
31        add_menu_page('XPressME','XPressME', 8, __FILE__, 'display_option_page' , $plugin_url.'/images/menu_icon.png');
32        // Add submenus to the custom top-level menu:
33        add_submenu_page(__FILE__, __('Display Settings', 'xpressme'), __('Display Settings', 'xpressme'), 8, __FILE__, 'display_option_page');
34        add_submenu_page(__FILE__, __('Integration Settings', 'xpressme'), __('Integration Settings', 'xpressme'), 8, 'integration_option_page', 'integration_option_page');
35        add_submenu_page(__FILE__, __('Other Settings', 'xpressme'), __('Other Settings', 'xpressme'), 8, 'other_option_page', 'other_option_page');
36//      if (function_exists('wp_remote_get'))
37                add_submenu_page(__FILE__, __('Upgrade', 'xpressme'), __('Upgrade', 'xpressme'), 8, 'upgrade_page', 'upgrade_page');
38        add_submenu_page(__FILE__, __('to Modules Admin', 'xpressme'), __('to Modules Admin', 'xpressme'), 8,  'redirect_xoops_admin', 'redirect_xoops_admin');
39}
40add_action('admin_menu', 'my_plugin_menu');
41
42add_filter("upload_dir",array(&$xpress_config, 'xpress_upload_filter'), 1);             // Change wp-include/wp_upload_dir()
43if (!$xpress_config->is_save_post_revision){
44        remove_action( 'pre_post_update', 'wp_save_post_revision' );                    // Not Save Post Revision
45}
46add_action("wp_meta" , "wp_meta_add_xpress_menu");                      // add xpress menu  in wp_meta
47       
48//Site URL check
49add_filter('option_home',                       "safe_site_url_filter");
50add_filter('option_siteurl',            "safe_site_url_filter");
51       
52
53//XOOPS Bloack Cache Refresh
54add_action("comment_post",      "block_cache_refresh");
55add_action("edit_comment",      "block_cache_refresh");
56add_action("wp_set_comment_status","block_cache_refresh"); //wp_delete_comment() at deleted
57add_action("deleted_post",      "block_cache_refresh");
58add_action("publish_post",      "block_cache_refresh");
59add_action("edit_post",         "block_cache_refresh");
60add_action("private_to_published",      "block_cache_refresh");
61add_action("transition_post_status", "block_cache_refresh");
62
63add_action("the_content",       "set_post_views_count");
64
65//XOOPS notifiction
66require_once dirname( __FILE__ ).'/include/notify_functions.php' ;
67add_action("transition_post_status",    "onaction_publish_post_notify" ,10 , 3);
68//      add_action("edit_post", "onaction_edit_post_notify");
69add_action("comment_post",      "onaction_comment_notify");
70//      add_action("approve_comment" , "onaction_comment_apobe_notify");
71add_action("wp_set_comment_status" , "onaction_comment_apobe_notify");
72
73// user data sync  user_sync_to_xoops($user_id)
74require_once dirname( __FILE__ ).'/include/user_sync_xoops.php' ;
75add_action('profile_update', 'user_sync_to_xoops');
76add_action('user_register', 'user_sync_to_xoops');
77//require_once('../include/custom_functions.php');
78
79//D3Forum Comment Integration
80if ($xpress_config->is_use_d3forum){
81        require_once dirname( __FILE__ ).'/include/d3forum_comment_synchro.php' ;
82        add_action("comment_post",      "onaction_comment_post");
83        add_action("edit_comment",      "onaction_edit_comment");
84        add_action("delete_comment","onaction_delete_comment");
85        add_action("delete_post",       "onaction_delete_post");
86        add_action("wp_set_comment_status" , "onaction_comment_apobe");
87       
88       
89        add_filter('comments_template', "disp_d3forum_comments" );
90
91}
92
93
94
95//The trackback and the pingback are excluded from the count of the comment.
96add_filter('get_comments_number', 'xpress_comment_count', 0);
97
98// Query filter for  MultiUser
99add_filter('query','xpress_query_filter');
100//add_action("init", "xpress_set_author_cookie");
101if(xpress_is_wp_version('<','2.1')){
102        // It is called before parse_request() makes $GET.
103        add_action("query_vars", "xpress_set_author_cookie");
104} else {
105        // It is called at the end of parse_request().
106        add_filter('request', 'xpress_set_author_cookie');
107}
108
109// SQL debug windows
110add_filter('query', array(&$xpress_config, 'xpress_sql_debug'));
111add_action('admin_footer', array(&$xpress_config, 'displayDebugLog'));
112add_action('wp_footer', array(&$xpress_config, 'displayDebugLog'));
113
114function redirect_xoops_admin()
115{
116        global $xoops_config,$xpress_config;
117        $xoops_admin_url = $xoops_config->module_url . '/admin/index.php';
118        wp_redirect($xoops_admin_url);
119}
120
121function display_option_page()
122{
123        global $xoops_config,$xpress_config;
124       
125                $xoops_admin_url = $xoops_config->module_url . '/admin/index.php';
126
127                $do_message ='';
128                if (!empty($_POST['submit_update'])) {
129                        $xpress_config->ReadPostData($_POST);
130                        $xpress_config->SettingValueWrite('update');
131                } else if (isset($_POST['submit_reset'])) {
132                        $xpress_config->setDefault();
133                        $xpress_config->SettingValueWrite('update');
134                }
135               
136                echo    '<div class="wrap">'."\n";
137                echo            '<div id="icon-options-general" class="icon32"><br /></div>'."\n";
138                echo            '<h2>' . __('XPressME Display Setting', 'xpressme') . "</h2><br>\n";
139//              echo            '<div align="right"><a href="' . $xoops_admin_url . '"><h3>'. __('to XOOPS Modules Admin Page', 'xpressme') . '</h3></a></div>';
140                echo            '<form method="post" action="' . $_SERVER["REQUEST_URI"] . '">'."\n" ;
141                echo                    '<table class="form-table">'."\n";
142                echo                            $xpress_config->viewer_type_option();
143                echo                            $xpress_config->yes_no_radio_option('is_theme_sidebar_disp',
144                                                                                                __('Thema Sidebar Display','xpressme'),
145                                                                                                __('YES','xpressme'),
146                                                                                                __('NO','xpressme')
147                                                                                                );
148                echo                            $xpress_config->single_post_navi_option();
149                echo                            $xpress_config->posts_page_navi_option();
150                echo                            $xpress_config->excerpt_option();
151                echo                    "</table>\n";
152               
153                echo            '<p class="submit">'."\n";
154                echo            '<input type="submit" value= "' . __('Update Config', 'xpressme') . '" name="submit_update" />' ."\n";
155                echo            '<input type="submit" value= "' . __('Preset Config', 'xpressme') . '" name="submit_reset" />' ."\n";
156                echo            "</p>\n";
157
158                echo            "</form>\n" ;
159                echo    "</div>\n";
160}
161
162function integration_option_page()
163{
164        global $xoops_config,$xpress_config;
165       
166                $xoops_admin_url = $xoops_config->module_url . '/admin/index.php';
167
168                $do_message ='';
169                if (!empty($_POST['submit_update'])) {
170                        $xpress_config->ReadPostData($_POST);
171                        $xpress_config->SettingValueWrite('update');
172                } else if (isset($_POST['submit_reset'])) {
173                        $xpress_config->setDefault();
174                        $xpress_config->SettingValueWrite('update');
175                } else if (isset($_POST['export_d3f'])) {
176                        $do_message  = 'export(' . $xpress_config->d3forum_module_dir . '--ID=' . $xpress_config->d3forum_forum_id . ')................';
177                        $do_message .= wp_to_d3forum($xpress_config->d3forum_forum_id, $xpress_config->d3forum_module_dir);
178                        $do_message .= '....END';
179                } else if (isset($_POST['inport_d3f'])) {
180                        $do_message  = 'Import(' . $xpress_config->d3forum_module_dir . '--ID=' . $xpress_config->d3forum_forum_id . ')................';
181                        $do_message .= d3forum_to_wp($xpress_config->d3forum_forum_id, $xpress_config->d3forum_module_dir);
182                        $do_message .= '....END';
183                }               
184               
185                echo    '<div class="wrap">'."\n";
186                echo            '<div id="icon-options-general" class="icon32"><br /></div>'."\n";
187                echo            '<h2>' . __('XPressME Integration Setting', 'xpressme') . "</h2><br>\n";
188//              echo            '<div align="right"><a href="' . $xoops_admin_url . '"><h3>'. __('to XOOPS Modules Admin Page', 'xpressme') . '</h3></a></div>';
189                echo            '<form method="post" action="' . $_SERVER["REQUEST_URI"] . '">'."\n" ;
190                echo                    '<table class="form-table">'."\n";
191                $upload_title = __('Media Upload Base Path','xpressme');
192                if($xoops_config->is_wpmu) $upload_title = $upload_title . '(WPMU is not select)';
193                echo                            $xpress_config->yes_no_radio_option('is_use_xoops_upload_path',
194                                                                                                $upload_title,
195                                                                                                __('Use XOOPS UPLOAD PATH','xpressme'),
196                                                                                                __('USE WordPress BASE_PATH','xpressme'),
197                                                                                                $xoops_config->is_wpmu
198                                                                                                );
199               
200                echo                            $xpress_config->groupe_role_option();           
201               
202                echo                            $xpress_config->d3forum_option($do_message);           
203                echo                    "</table>\n";
204               
205                echo            '<p class="submit">'."\n";
206                echo            '<input type="submit" value= "' . __('Update Config', 'xpressme') . '" name="submit_update" />' ."\n";
207                echo            '<input type="submit" value= "' . __('Preset Config', 'xpressme') . '" name="submit_reset" />' ."\n";
208                echo            "</p>\n";
209
210                echo            "</form>\n" ;
211                echo    "</div>\n";
212}
213
214function other_option_page()
215{
216        global $xoops_config,$xpress_config;
217       
218                $xoops_admin_url = $xoops_config->module_url . '/admin/index.php';
219
220                $do_message ='';
221                if (!empty($_POST['submit_update'])) {
222                        $xpress_config->ReadPostData($_POST);
223                        $xpress_config->SettingValueWrite('update');
224                } else if (isset($_POST['submit_reset'])) {
225                        $xpress_config->setDefault();
226                        $xpress_config->SettingValueWrite('update');
227                }
228               
229                echo    '<div class="wrap">'."\n";
230                echo            '<div id="icon-options-general" class="icon32"><br /></div>'."\n";
231                echo            '<h2>' . __('XPressME Other Setting', 'xpressme') . "</h2><br>\n";
232//              echo            '<div align="right"><a href="' . $xoops_admin_url . '"><h3>'. __('to XOOPS Modules Admin Page', 'xpressme') . '</h3></a></div>';
233                echo            '<form method="post" action="' . $_SERVER["REQUEST_URI"] . '">'."\n" ;
234                echo                    '<table class="form-table">'."\n";
235                echo                            $xpress_config->yes_no_radio_option('is_save_post_revision',
236                                                                                                __('The change tracking of the post is preserved','xpressme'),
237                                                                                                __('YES','xpressme'),
238                                                                                                __('NO','xpressme')
239                                                                                                );
240               
241                echo                            $xpress_config->yes_no_radio_option('is_multi_user',
242                                                                                                __('Select Multi user mode','xpressme'),
243                                                                                                __('YES','xpressme'),
244                                                                                                __('NO','xpressme')
245                                                                                                );
246                echo                            $xpress_config->yes_no_radio_option('is_author_view_count',
247                                                                                                __('Is the posts author views counted?','xpressme'),
248                                                                                                __('YES','xpressme'),
249                                                                                                __('NO','xpressme')             
250                                                                                                );
251                echo                            $xpress_config->header_meta_option();
252                echo                            $xpress_config->yes_no_radio_option('is_sql_debug',
253                                                                                                __('Is SQL debugging window displayed?','xpressme'),
254                                                                                                __('YES','xpressme'),
255                                                                                                __('NO','xpressme')             
256                                                                                                );
257                echo                    "</table>\n";
258               
259                echo            '<p class="submit">'."\n";
260                echo            '<input type="submit" value= "' . __('Update Config', 'xpressme') . '" name="submit_update" />' ."\n";
261                echo            '<input type="submit" value= "' . __('Preset Config', 'xpressme') . '" name="submit_reset" />' ."\n";
262                echo            "</p>\n";
263
264                echo            "</form>\n" ;
265                echo    "</div>\n";
266}
267
268function upgrade_page()
269{
270        global $xoops_config,$xpress_config;
271       
272        $xpress_version = $xoops_config->module_version . $xoops_config->module_codename;
273        $check_url = "http://ja1.xpressme.info/version_check/?version=$xpress_version";
274
275        echo    '<div class="wrap">'."\n";
276        echo            '<div id="icon-options-general" class="icon32"><br /></div>'."\n";
277        echo            '<h2>' . __('XPressME Upgrade', 'xpressme') . "</h2><br>\n";
278       
279        if(get_xpress_latest_version()){
280                $latest = get_option('xpressme_latest_version');
281                if ($latest) {
282                        $site_url=$latest['url'];
283                        $package=$latest['package'];
284                        $latest_version=$latest['latest_version'];
285                        $check_time=$latest['check_time'];
286                }
287
288
289                if (version_compare($xpress_version, $latest_version, '>')){
290                                echo '<h3 class="response">';
291                                printf(__('You are using a XPressME Integration Kit development version (%1$s). Cool! Please <a href="%2$s">stay updated</a>.', 'xpressme') , $xpress_version , $site_url);
292                                echo '</h3>';
293
294                } else if (version_compare($xpress_version, $latest_version, '<')) {
295                        echo    '<h3 class="response">'. __('There is a new version of XPressME Integration Kit available for upgrade', 'xpressme') . '</h3>';
296                        echo '<p>';
297        //              printf(__('You can upgrade to version %s automatically or download the package and install it manually:'),$latest_version);
298                        printf(__('You can upgrade to version %s download the package and install it manually:', 'xpressme'),$latest_version);
299                        echo '</p>';
300                        echo '<a class="button" href="' . $package . '">';
301                        printf(__('Download %s', 'xpressme') , $latest_version);
302                        echo '</a>';
303                } else {
304                        echo    '<h3 class="response">'. __('You have the latest version of XPressME Integration Kit. You do not need to upgrade', 'xpressme') . '</h3>';
305                }
306        } else {
307                echo '<h3 class="response">';
308                printf(__('There is no response from <a href="%s">version check API</a> now. sorry, please confirm it after.', 'xpressme'),$check_url);
309                echo    "</div>\n";
310        }
311}
312
313function xp_remote_get($url, $headers = ""){
314        global $xoops_config;
315        $xpress_version = $xoops_config->module_version . $xoops_config->module_codename;
316
317        require_once( $xoops_config->module_path . '/wp-includes/class-snoopy.php');
318
319        // Snoopy is an HTTP client in PHP
320        $client = new Snoopy();
321        $client->agent = 'XPressME/' . $xpress_version;
322        $client->read_timeout = 2;
323        if (is_array($headers) ) {
324                $client->rawheaders = $headers;
325        }
326
327        @$client->fetch($url);
328        $response['response']['code'] = $client->status;
329        $response['body'] = $client->results;
330        return $response;
331        return $client;
332
333}
334
335function get_xpress_latest_version(){
336        global $wp_version, $wpdb, $wp_local_package;
337        global $xoops_config;
338       
339        $xpress_version = $xoops_config->module_version . $xoops_config->module_codename;
340
341        $check_url = "http://ja.xpressme.info/version_check/?version=$xpress_version";
342        $request_options = array(
343        'timeout' => 3,
344        'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
345        );
346
347        if (! function_exists('wp_remote_get')) {
348                $response = xp_remote_get($check_url);
349               
350                if (empty($response['body'])) return false;
351        } else {
352       
353                $response = wp_remote_get($check_url, $request_options);
354               
355                if ( is_wp_error( $response ) )
356                        return false;
357        }
358        if ( 200 != $response['response']['code'] )
359                return false;
360        $body = trim( $response['body'] );
361        $body = str_replace(array("\r\n", "\r"), "\n", $body);
362        $returns = explode("\n", $body);
363        $response = $returns[0];
364        if ( isset( $returns[1] ) )
365                $url = clean_url( $returns[1] );
366        if ( isset( $returns[2] ) )
367                $package = clean_url( $returns[2] );
368        if ( isset( $returns[3] ) )
369                $latest_version = $returns[3];
370
371        $write_options = array (
372                'url' => $url ,
373                'package' => $package ,
374                'latest_version' => $latest_version ,
375                'check_time' => time()
376        );
377       
378        $latest_version = get_option('xpressme_latest_version');
379        if (!$latest_version) {
380                add_option('xpressme_latest_version', $write_options);
381        } else {
382                update_option('xpressme_latest_version', $write_options);
383        }
384        return true;
385}
386
387function xpress_update_check() {
388        if ( defined('WP_INSTALLING') )
389                return;
390        global $pagenow;
391
392        $php_query_string = $_SERVER['QUERY_STRING'];
393
394        if ( 'admin.php' == $pagenow && 'page=upgrade_page' == $php_query_string)
395                return;
396
397        global $wp_version, $wpdb, $wp_local_package;
398        global $xoops_config;
399
400        $php_query_string = $_SERVER['QUERY_STRING'];
401        $xpress_version = $xoops_config->module_version . $xoops_config->module_codename;
402
403        $latest = get_option('xpressme_latest_version');
404        if (!$latest ) {
405                get_xpress_latest_version();
406                $latest = get_option('xpressme_latest_version');
407        }
408
409        if ($latest) {
410                $next_check = $latest['check_time'] + (60*60*24);
411                $now_time = time();
412                if ($next_check < $now_time ){
413                        get_xpress_latest_version();
414                        $latest = get_option('xpressme_latest_version');
415                }
416        }
417
418        if ($latest) {
419                $url=$latest['url'];
420                $package=$latest['package'];
421                $latest_version=$latest['latest_version'];
422                $check_time=$latest['check_time'];
423                $upgrade_page = $xoops_config->module_url . "/wp-admin/admin.php?page=upgrade_page";
424
425                if (version_compare($xpress_version, $latest_version, '<')) {
426                        if ( current_user_can('manage_options') ){
427                                $msg = sprintf( __('XPressME Integration Kit Version %1$s is available! <a href="%2$s">Please update now</a>.', 'xpressme'), $latest_version, $upgrade_page );
428                        } else {
429                                $msg = sprintf( __('XPressME Integration Kit Version %1$s is available! Please notify the site administrator.', 'xpressme'), $latest_version );
430                        }
431                        echo "<div id='update-nag'>$msg </div>";
432                }
433        }
434}
435
436add_action( 'admin_notices', 'xpress_update_check', 3 );
437?>
Note: See TracBrowser for help on using the repository browser.