XPressME Integration Kit

Trac

source: branches/XPressMU/xpressme_integration_kit/wp-content/plugins/xpressme/xpressme.php @ 413

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

XPressMUの整合性修正

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                            $xpress_config->dashboard_display_option();
152                echo                    "</table>\n";
153               
154                echo            '<p class="submit">'."\n";
155                echo            '<input type="submit" value= "' . __('Update Config', 'xpressme') . '" name="submit_update" />' ."\n";
156                echo            '<input type="submit" value= "' . __('Preset Config', 'xpressme') . '" name="submit_reset" />' ."\n";
157                echo            "</p>\n";
158
159                echo            "</form>\n" ;
160                echo    "</div>\n";
161}
162
163function integration_option_page()
164{
165        global $xoops_config,$xpress_config;
166       
167                $xoops_admin_url = $xoops_config->module_url . '/admin/index.php';
168
169                $do_message ='';
170                if (!empty($_POST['submit_update'])) {
171                        $xpress_config->ReadPostData($_POST);
172                        $xpress_config->SettingValueWrite('update');
173                } else if (isset($_POST['submit_reset'])) {
174                        $xpress_config->setDefault();
175                        $xpress_config->SettingValueWrite('update');
176                } else if (isset($_POST['export_d3f'])) {
177                        $do_message  = 'export(' . $xpress_config->d3forum_module_dir . '--ID=' . $xpress_config->d3forum_forum_id . ')................';
178                        $do_message .= wp_to_d3forum($xpress_config->d3forum_forum_id, $xpress_config->d3forum_module_dir);
179                        $do_message .= '....END';
180                } else if (isset($_POST['inport_d3f'])) {
181                        $do_message  = 'Import(' . $xpress_config->d3forum_module_dir . '--ID=' . $xpress_config->d3forum_forum_id . ')................';
182                        $do_message .= d3forum_to_wp($xpress_config->d3forum_forum_id, $xpress_config->d3forum_module_dir);
183                        $do_message .= '....END';
184                }               
185               
186                echo    '<div class="wrap">'."\n";
187                echo            '<div id="icon-options-general" class="icon32"><br /></div>'."\n";
188                echo            '<h2>' . __('XPressME Integration Setting', 'xpressme') . "</h2><br>\n";
189//              echo            '<div align="right"><a href="' . $xoops_admin_url . '"><h3>'. __('to XOOPS Modules Admin Page', 'xpressme') . '</h3></a></div>';
190                echo            '<form method="post" action="' . $_SERVER["REQUEST_URI"] . '">'."\n" ;
191                echo                    '<table class="form-table">'."\n";
192                echo                            $xpress_config->yes_no_radio_option('is_use_xoops_upload_path',
193                                                                                                __('Media Upload Base Path','xpressme'),
194                                                                                                __('Use XOOPS UPLOAD PATH','xpressme'),
195                                                                                                __('USE WordPress BASE_PATH','xpressme')
196                                                                                                );
197               
198                echo                            $xpress_config->groupe_role_option();           
199               
200                echo                            $xpress_config->d3forum_option($do_message);           
201                echo                    "</table>\n";
202               
203                echo            '<p class="submit">'."\n";
204                echo            '<input type="submit" value= "' . __('Update Config', 'xpressme') . '" name="submit_update" />' ."\n";
205                echo            '<input type="submit" value= "' . __('Preset Config', 'xpressme') . '" name="submit_reset" />' ."\n";
206                echo            "</p>\n";
207
208                echo            "</form>\n" ;
209                echo    "</div>\n";
210}
211
212function other_option_page()
213{
214        global $xoops_config,$xpress_config;
215       
216                $xoops_admin_url = $xoops_config->module_url . '/admin/index.php';
217
218                $do_message ='';
219                if (!empty($_POST['submit_update'])) {
220                        $xpress_config->ReadPostData($_POST);
221                        $xpress_config->SettingValueWrite('update');
222                } else if (isset($_POST['submit_reset'])) {
223                        $xpress_config->setDefault();
224                        $xpress_config->SettingValueWrite('update');
225                }
226               
227                echo    '<div class="wrap">'."\n";
228                echo            '<div id="icon-options-general" class="icon32"><br /></div>'."\n";
229                echo            '<h2>' . __('XPressME Other Setting', 'xpressme') . "</h2><br>\n";
230//              echo            '<div align="right"><a href="' . $xoops_admin_url . '"><h3>'. __('to XOOPS Modules Admin Page', 'xpressme') . '</h3></a></div>';
231                echo            '<form method="post" action="' . $_SERVER["REQUEST_URI"] . '">'."\n" ;
232                echo                    '<table class="form-table">'."\n";
233                echo                            $xpress_config->yes_no_radio_option('is_save_post_revision',
234                                                                                                __('The change tracking of the post is preserved','xpressme'),
235                                                                                                __('YES','xpressme'),
236                                                                                                __('NO','xpressme')
237                                                                                                );
238               
239                echo                            $xpress_config->yes_no_radio_option('is_multi_user',
240                                                                                                __('Select Multi user mode','xpressme'),
241                                                                                                __('YES','xpressme'),
242                                                                                                __('NO','xpressme')
243                                                                                                );
244                echo                            $xpress_config->yes_no_radio_option('is_author_view_count',
245                                                                                                __('Is the posts author views counted?','xpressme'),
246                                                                                                __('YES','xpressme'),
247                                                                                                __('NO','xpressme')             
248                                                                                                );
249                echo                            $xpress_config->header_meta_option();
250                echo                            $xpress_config->yes_no_radio_option('is_sql_debug',
251                                                                                                __('Is SQL debugging window displayed?','xpressme'),
252                                                                                                __('YES','xpressme'),
253                                                                                                __('NO','xpressme')             
254                                                                                                );
255                echo                    "</table>\n";
256               
257                echo            '<p class="submit">'."\n";
258                echo            '<input type="submit" value= "' . __('Update Config', 'xpressme') . '" name="submit_update" />' ."\n";
259                echo            '<input type="submit" value= "' . __('Preset Config', 'xpressme') . '" name="submit_reset" />' ."\n";
260                echo            "</p>\n";
261
262                echo            "</form>\n" ;
263                echo    "</div>\n";
264}
265
266function upgrade_page()
267{
268        global $xoops_config,$xpress_config;
269       
270        $xpress_version = $xoops_config->module_version . $xoops_config->module_codename;
271        $check_url = "http://ja1.xpressme.info/version_check/?version=$xpress_version";
272
273        echo    '<div class="wrap">'."\n";
274        echo            '<div id="icon-options-general" class="icon32"><br /></div>'."\n";
275        echo            '<h2>' . __('XPressME Upgrade', 'xpressme') . "</h2><br>\n";
276       
277        if(get_xpress_latest_version()){
278                $latest = get_option('xpressme_latest_version');
279                if ($latest) {
280                        $site_url=$latest['url'];
281                        $package=$latest['package'];
282                        $latest_version=$latest['latest_version'];
283                        $check_time=$latest['check_time'];
284                }
285
286
287                if (version_compare($xpress_version, $latest_version, '>')){
288                                echo '<h3 class="response">';
289                                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);
290                                echo '</h3>';
291
292                } else if (version_compare($xpress_version, $latest_version, '<')) {
293                        echo    '<h3 class="response">'. __('There is a new version of XPressME Integration Kit available for upgrade', 'xpressme') . '</h3>';
294                        echo '<p>';
295        //              printf(__('You can upgrade to version %s automatically or download the package and install it manually:'),$latest_version);
296                        printf(__('You can upgrade to version %s download the package and install it manually:', 'xpressme'),$latest_version);
297                        echo '</p>';
298                        echo '<a class="button" href="' . $package . '">';
299                        printf(__('Download %s', 'xpressme') , $latest_version);
300                        echo '</a>';
301                } else {
302                        echo    '<h3 class="response">'. __('You have the latest version of XPressME Integration Kit. You do not need to upgrade', 'xpressme') . '</h3>';
303                }
304        } else {
305                echo '<h3 class="response">';
306                printf(__('There is no response from <a href="%s">version check API</a> now. sorry, please confirm it after.', 'xpressme'),$check_url);
307                echo    "</div>\n";
308        }
309}
310
311function xp_remote_get($url, $headers = ""){
312        global $xoops_config;
313        $xpress_version = $xoops_config->module_version . $xoops_config->module_codename;
314
315        require_once( $xoops_config->module_path . '/wp-includes/class-snoopy.php');
316
317        // Snoopy is an HTTP client in PHP
318        $client = new Snoopy();
319        $client->agent = 'XPressME/' . $xpress_version;
320        $client->read_timeout = 2;
321        if (is_array($headers) ) {
322                $client->rawheaders = $headers;
323        }
324
325        @$client->fetch($url);
326        $response['response']['code'] = $client->status;
327        $response['body'] = $client->results;
328        return $response;
329        return $client;
330
331}
332
333function get_xpress_latest_version(){
334        global $wp_version, $wpdb, $wp_local_package;
335        global $xoops_config;
336       
337        $xpress_version = $xoops_config->module_version . $xoops_config->module_codename;
338
339        $check_url = "http://ja.xpressme.info/version_check/?version=$xpress_version";
340        $request_options = array(
341        'timeout' => 3,
342        'user-agent' => 'WordPress/' . $wp_version . '; ' . get_bloginfo( 'url' )
343        );
344
345        if (! function_exists('wp_remote_get')) {
346                $response = xp_remote_get($check_url);
347               
348                if (empty($response['body'])) return false;
349        } else {
350       
351                $response = wp_remote_get($check_url, $request_options);
352               
353                if ( is_wp_error( $response ) )
354                        return false;
355        }
356        if ( 200 != $response['response']['code'] )
357                return false;
358        $body = trim( $response['body'] );
359        $body = str_replace(array("\r\n", "\r"), "\n", $body);
360        $returns = explode("\n", $body);
361        $response = $returns[0];
362        if ( isset( $returns[1] ) )
363                $url = clean_url( $returns[1] );
364        if ( isset( $returns[2] ) )
365                $package = clean_url( $returns[2] );
366        if ( isset( $returns[3] ) )
367                $latest_version = $returns[3];
368
369        $write_options = array (
370                'url' => $url ,
371                'package' => $package ,
372                'latest_version' => $latest_version ,
373                'check_time' => time()
374        );
375       
376        $latest_version = get_option('xpressme_latest_version');
377        if (!$latest_version) {
378                add_option('xpressme_latest_version', $write_options);
379        } else {
380                update_option('xpressme_latest_version', $write_options);
381        }
382        return true;
383}
384
385function xpress_update_check() {
386        if ( defined('WP_INSTALLING') )
387                return;
388        global $pagenow;
389
390        $php_query_string = $_SERVER['QUERY_STRING'];
391
392        if ( 'admin.php' == $pagenow && 'page=upgrade_page' == $php_query_string)
393                return;
394
395        global $wp_version, $wpdb, $wp_local_package;
396        global $xoops_config;
397
398        $php_query_string = $_SERVER['QUERY_STRING'];
399        $xpress_version = $xoops_config->module_version . $xoops_config->module_codename;
400
401        $latest = get_option('xpressme_latest_version');
402        if (!$latest ) {
403                get_xpress_latest_version();
404                $latest = get_option('xpressme_latest_version');
405        }
406
407        if ($latest) {
408                $next_check = $latest['check_time'] + (60*60*24);
409                $now_time = time();
410                if ($next_check < $now_time ){
411                        get_xpress_latest_version();
412                        $latest = get_option('xpressme_latest_version');
413                }
414        }
415
416        if ($latest) {
417                $url=$latest['url'];
418                $package=$latest['package'];
419                $latest_version=$latest['latest_version'];
420                $check_time=$latest['check_time'];
421                $upgrade_page = $xoops_config->module_url . "/wp-admin/admin.php?page=upgrade_page";
422
423                if (version_compare($xpress_version, $latest_version, '<')) {
424                        if ( current_user_can('manage_options') ){
425                                $msg = sprintf( __('XPressME Integration Kit Version %1$s is available! <a href="%2$s">Please update now</a>.', 'xpressme'), $latest_version, $upgrade_page );
426                        } else {
427                                $msg = sprintf( __('XPressME Integration Kit Version %1$s is available! Please notify the site administrator.', 'xpressme'), $latest_version );
428                        }
429                        echo "<div id='update-nag'>$msg </div>";
430                }
431        }
432}
433
434add_action( 'admin_notices', 'xpress_update_check', 3 );
435
436include_once dirname( __FILE__ ).'/include/dashboard_feed.php' ;
437
438?>
Note: See TracBrowser for help on using the repository browser.