WIKI使用導(dǎo)航
站長(zhǎng)百科導(dǎo)航
站長(zhǎng)專(zhuān)題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢(qián)
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專(zhuān)題
- 云計(jì)算
- 微博營(yíng)銷(xiāo)
- 虛擬主機(jī)管理系統(tǒng)
- 開(kāi)放平臺(tái)
- WIKI程序與應(yīng)用
- 美國(guó)十大主機(jī)
WordPress:WPMU Cimy Extra Fields 插件
These notes are from memory. Please correct them!
這些記錄來(lái)自內(nèi)存。請(qǐng)更改!
Note from Marco Cimmino the author of the plug-in:
來(lái)自插件作者M(jìn)arco Cimmino的筆記:
These informations are from users not from me, so I thanx them but I should advise you that are UNOFFICIAL and UNSUPPORTED by me.
這些信息是來(lái)自用戶而不是來(lái)自我的,因此,我感謝這些用戶,但是我要提醒你,這些信息是不正式,也不由我支持。
Also note that these modifications are no more necessary with Cimy User Extra Fields 1.0.0 that partially support WordPress MU. If you want to see full MU support in this plug-in contact me and sponsor it.
同時(shí)注意部分由WordPress MU支持的Cimy User Extra Fields 1.0.0,更需要這些更改。 如果你希望得到這個(gè)插件的完全的MU支持,請(qǐng)聯(lián)系我,我會(huì)提綱幫助。
Thanx
Marco Cimmino
Thanx
Marco Cimmino
Cimy User Extra Fields for WordPress[ ]
WordPress的Cimy User Extra Fields[ ]
WordPress is becoming more than ever a tool to open blog/websites and CMSs in an easier way. Users are increasing day by day; one of the limits however is the restricted and predefined fields that are available in the registered users profile: it is difficult for example to ask for the acceptance of “Terms and Conditions of Use” or “Permission to use personal data”.
WordPress is becoming more than ever a tool to open blog/websites and CMSs in an easier way. Users are increasing day by day; one of the limits however is the restricted and predefined fields that are available in the registered users profile: it is difficult for example to ask for the acceptance of “Terms and Conditions of Use” or “Permission to use personal data”.
WordPress越來(lái)越不僅僅是個(gè)以簡(jiǎn)單的方式打開(kāi)博客/網(wǎng)站和CMSs的工具。用戶一天天地增加;其中的一個(gè)限制是注冊(cè)用戶基本資料中的受限制的和預(yù)先確定的fields:例子很難要求接受“使用條款和條件” 或者“使用個(gè)人數(shù)據(jù)的權(quán)限”。
It’s also possible to set a password during registration combined to equalTO rule, only people who knows the password can register.
在注冊(cè)過(guò)程中,設(shè)置與equalTO規(guī)則相結(jié)合的密碼,只有知道密碼的用戶,才可以注冊(cè)。
We have developed a WordPress plug-in to do this. 我們開(kāi)發(fā)了WordPress插件來(lái)執(zhí)行這個(gè)操作。
This plugin can work if you make two types of MU modification:
如果你創(chuàng)建兩種類(lèi)型的MU modification,這個(gè)插件可以運(yùn)行:
1) wordPress:UnMuify the plugin shared tables 2) wordPress:Manually activate the WPMU mu-plugins
1) UnMuify the plugin shared tables
For 1) at the start of the plugin's main file, there's a line that sets $cimy_data = $wpdb->prefix . 'cimy_data';
1)在插件的主要文件的開(kāi)頭,有一行設(shè)置了$cimy_data = $wpdb->prefix . 'cimy_data';
Now, WPMU muifys the prefix, replacing changing it from the default wp_ prefix to wp_x_ where x = 1...n; as this is usually needed to convert plugins that know about a single blog to one that can deal with many. You need to inhibit this. In the plugin file, at the top, replace the $wpdb->prefix with the change:
現(xiàn)在,WPMU muifys前綴,replacing changing it from the default wp_ prefix to wp_x_ where x = 1...n;通常這需要將了解單個(gè)博客的插件轉(zhuǎn)換為了解多個(gè)博客的插件。你需要抑制這種情況。在插件文件中,在頂上方,將$wpdb->prefix替換為the change:
$cimy_data = 'wp_'. 'cimy_data'; $cimy_fields = 'wp_'. 'cimy_fields';
$cimy_data = 'wp_'. 'cimy_data'; $cimy_fields = 'wp_'. 'cimy_fields';
For 2) WPMU does not honour WP's contract to plugins to let them activate when they first start. This means that plugins never get the chance to initialize tables.
2)WPMU不讓W(xué)P聯(lián)系插件,使得插件剛開(kāi)始,就激活。這意味著插件永遠(yuǎn)都不會(huì)初始化表格。
A crap (but effective) workaround is to manually install into plugins, activate, and move the plugin into Mu plugins. In order for this to work, you need to disable (remove) the copy on mu-plugins, activate this one, and then upload to mu-plugins.
A crap (但是有效) workaround是要?jiǎng)邮职惭b到插件中,激活插件并且將插件轉(zhuǎn)移到Mu插件。為了能夠運(yùn)行,你需要取消(移除)mu-plugins上的copy,激活這個(gè)插件,然后上傳到mu-plugins。
Feel free to correct these instructions, and point to them liberally, but please don't add them to the forum. Because the forums are write-once, they have become morass of duplicated, often incorrect and incomplete.
隨意地更改這些指示說(shuō)明,隨意地指向這些說(shuō)明,但是請(qǐng)不要將這些說(shuō)明添加到論壇上。因?yàn)檎搲习l(fā)表的內(nèi)容,會(huì)不斷地被復(fù)制,通常內(nèi)容不正確也不完整。
RCS file: cimy_user_extra_fields.php,v retrieving revision 1.1 diff -C 5 -r1.1 cimy_user_extra_fields.php *** cimy_user_extra_fields.php 2007/08/24 11:59:54 1.1 --- cimy_user_extra_fields.php 2007/08/24 19:01:42 *************** *** 35,46 **** */ if (!function_exists(php_compat_mqgpc_unescape)) include_once("magic_quotes_gpc_off_function.php"); ! $wpdb_data_table = $wpdb->prefix."cimy_data"; ! $wpdb_fields_table = $wpdb->prefix."cimy_fields"; $cimy_uef_options = "cimy_uef_options"; $cimy_uef_options_descr = "Cimy User Extra Fields options are stored here and modified only by admin"; /* --- 35,48 ---- */ if (!function_exists(php_compat_mqgpc_unescape)) include_once("magic_quotes_gpc_off_function.php"); ! //$wpdb_data_table = $wpdb->prefix."cimy_data"; ! //$wpdb_fields_table = $wpdb->prefix."cimy_fields"; ! $wpdb_data_table = "wp_cimy_data"; ! $wpdb_fields_table = "wp_cimy_fields"; $cimy_uef_options = "cimy_uef_options"; $cimy_uef_options_descr = "Cimy User Extra Fields options are stored here and modified only by admin"; /* *************** *** 193,202 **** --- 195,205 ---- // add update engine for extra fields to user's registration add_action('user_register', 'cimy_register_user_extra_fields'); // function that add the submenu under 'Users' + add_action('admin_menu', 'cimy_admin_menu_custom'); // delete user extra fields data when a user is deleted add_action('delete_user', 'cimy_delete_user_info'); *************** *** 257,267 **** $values = substr($values, $label_pos + 1); } else $label = ""; ! $items = explode(",",$values); $html_options = ""; foreach ($items as $item) { $html_options.= "\n\t\t\t"; $html_options.= '<option value="'.$item.'"'; --- 260,272 ---- $values = substr($values, $label_pos + 1); } else $label = ""; ! // in case the user pastes from windows or mac, convert to \n ! $items = str_replace(array("\r\n", "\n", "\r"), "\n", $items); ! $items = explode("\n",$values); $html_options = ""; foreach ($items as $item) { $html_options.= "\n\t\t\t"; $html_options.= '<option value="'.$item.'"'; *************** *** 306,317 **** } function cimy_admin_menu_custom() { global $cimy_uef_name; ! add_options_page($cimy_uef_name, $cimy_uef_name, 10, basename(__FILE__), 'cimy_admin_define_extra_fields'); ! add_submenu_page('profile.php', 'Authors & Users Extended', 'A&U Extended', 10, basename(__FILE__), 'cimy_admin_users_list_page'); } function cimy_get_thumb_path($file_path) { $file_path_purename = substr($file_path, 0, strrpos($file_path, ".")); $file_path_ext = substr($file_path, strlen($file_path_purename)); --- 311,324 ---- } function cimy_admin_menu_custom() { global $cimy_uef_name; ! if (is_site_admin()) { ! add_options_page($cimy_uef_name, $cimy_uef_name, 10, basename(__FILE__), 'cimy_admin_define_extra_fields'); ! add_submenu_page('profile.php', 'Authors & Users Extended', 'A&U Extended', 10, basename(__FILE__), 'cimy_admin_users_list_page'); ! } } function cimy_get_thumb_path($file_path) { $file_path_purename = substr($file_path, 0, strrpos($file_path, ".")); $file_path_ext = substr($file_path, strlen($file_path_purename)); *************** *** 2770,2780 **** if ($i > 0) { $query.=" ELSE FIELD_ID END WHERE FIELD_ID IN(".$field_ids.") AND USER_ID = ".$get_user_id; // $query WILL BE: UPDATE <table> SET VALUE=CASE FIELD_ID WHEN <field_id1> THEN <value1> [WHEN ... THEN ...] ELSE FIELD_ID END WHERE FIELD_ID IN(<field_id1>, [<field_id2>...]) AND USER_ID=<user_id> ! $wpdb->query($query); } } function cimy_insert_ExtraFields_if_not_exist($user_id, $field_id) { global $wpdb, $wpdb_data_table; --- 2777,2787 ---- if ($i > 0) { $query.=" ELSE FIELD_ID END WHERE FIELD_ID IN(".$field_ids.") AND USER_ID = ".$get_user_id; // $query WILL BE: UPDATE <table> SET VALUE=CASE FIELD_ID WHEN <field_id1> THEN <value1> [WHEN ... THEN ...] ELSE FIELD_ID END WHERE FIELD_ID IN(<field_id1>, [<field_id2>...]) AND USER_ID=<user_id> ! $ans = $wpdb->query($query); } } function cimy_insert_ExtraFields_if_not_exist($user_id, $field_id) { global $wpdb, $wpdb_data_table;
RCS file: cimy_user_extra_fields.php,v 返回 1.1版本 diff -C 5 -r1.1 cimy_user_extra_fields.php *** cimy_user_extra_fields.php 2007/08/24 11:59:54 1.1 --- cimy_user_extra_fields.php 2007/08/24 19:01:42 *************** *** 35,46 **** */ if (!function_exists(php_compat_mqgpc_unescape)) include_once("magic_quotes_gpc_off_function.php"); ! $wpdb_data_table = $wpdb->prefix."cimy_data"; ! $wpdb_fields_table = $wpdb->prefix."cimy_fields"; $cimy_uef_options = "cimy_uef_options"; $cimy_uef_options_descr = "Cimy User Extra Fields options are stored here and modified only by admin"; /* --- 35,48 ---- */ if (!function_exists(php_compat_mqgpc_unescape)) include_once("magic_quotes_gpc_off_function.php"); ! //$wpdb_data_table = $wpdb->prefix."cimy_data"; ! //$wpdb_fields_table = $wpdb->prefix."cimy_fields"; ! $wpdb_data_table = "wp_cimy_data"; ! $wpdb_fields_table = "wp_cimy_fields"; $cimy_uef_options = "cimy_uef_options"; $cimy_uef_options_descr = "Cimy User Extra Fields 選項(xiàng)儲(chǔ)存在這里而且只有管理員才能夠更改"; /* *************** *** 193,202 **** --- 195,205 ---- // 為用戶注冊(cè)的額外fields添加更新引擎 add_action('user_register', 'cimy_register_user_extra_fields'); //將子菜單添加到 '用戶'下面的函數(shù) + add_action('admin_menu', 'cimy_admin_menu_custom'); // 刪除用戶的時(shí)候,刪除用戶delete user extra fields 數(shù)據(jù) add_action('delete_user', 'cimy_delete_user_info'); *************** *** 257,267 **** $values = substr($values, $label_pos + 1); } else $label = ""; ! $items = explode(",",$values); $html_options = ""; foreach ($items as $item) { $html_options.= "\n\t\t\t"; $html_options.= '<option value="'.$item.'"'; --- 260,272 ---- $values = substr($values, $label_pos + 1); } else $label = ""; ! // 用戶從windows或者mac中粘貼,轉(zhuǎn)換為 \n ! $items = str_replace(array("\r\n", "\n", "\r"), "\n", $items); ! $items = explode("\n",$values); $html_options = ""; foreach ($items as $item) { $html_options.= "\n\t\t\t"; $html_options.= '<option value="'.$item.'"'; *************** *** 306,317 **** } function cimy_admin_menu_custom() { global $cimy_uef_name; ! add_options_page($cimy_uef_name, $cimy_uef_name, 10, basename(__FILE__), 'cimy_admin_define_extra_fields'); ! add_submenu_page('profile.php', 'Authors & Users Extended', 'A&U Extended', 10, basename(__FILE__), 'cimy_admin_users_list_page'); } function cimy_get_thumb_path($file_path) { $file_path_purename = substr($file_path, 0, strrpos($file_path, ".")); $file_path_ext = substr($file_path, strlen($file_path_purename)); --- 311,324 ---- } function cimy_admin_menu_custom() { global $cimy_uef_name; ! if (is_site_admin()) { ! add_options_page($cimy_uef_name, $cimy_uef_name, 10, basename(__FILE__), 'cimy_admin_define_extra_fields'); ! add_submenu_page('profile.php', 'Authors & Users Extended', 'A&U Extended', 10, basename(__FILE__), 'cimy_admin_users_list_page'); ! } } function cimy_get_thumb_path($file_path) { $file_path_purename = substr($file_path, 0, strrpos($file_path, ".")); $file_path_ext = substr($file_path, strlen($file_path_purename)); *************** *** 2770,2780 **** if ($i > 0) { $query.=" ELSE FIELD_ID END WHERE FIELD_ID IN(".$field_ids.") AND USER_ID = ".$get_user_id; // $query WILL BE: UPDATE <table> SET VALUE=CASE FIELD_ID WHEN <field_id1> THEN <value1> [WHEN ... THEN ...] ELSE FIELD_ID END WHERE FIELD_ID IN(<field_id1>, [<field_id2>...]) AND USER_ID=<user_id> ! $wpdb->query($query); } } function cimy_insert_ExtraFields_if_not_exist($user_id, $field_id) { global $wpdb, $wpdb_data_table; --- 2777,2787 ---- if ($i > 0) { $query.=" ELSE FIELD_ID END WHERE FIELD_ID IN(".$field_ids.") AND USER_ID = ".$get_user_id; // $query WILL BE: UPDATE <table> SET VALUE=CASE FIELD_ID WHEN <field_id1> THEN <value1> [WHEN ... THEN ...] ELSE FIELD_ID END WHERE FIELD_ID IN(<field_id1>, [<field_id2>...]) AND USER_ID=<user_id> ! $ans = $wpdb->query($query); } } function cimy_insert_ExtraFields_if_not_exist($user_id, $field_id) { global $wpdb, $wpdb_data_table;