XPressME Integration Kit

Trac

source: trunk/xpressme_integration_kit/wp-content/plugins/xpressme/xpressme.php @ 369

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

XPressME のアップデート通知の実装でのfunction_exists()構文修正 fixes #205

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