NextGEN Gallery是Wordpress中著名的相册插件,遗憾的是不支持中文等unicode字符,本文将介绍如何将目录转换为拼音(添加图集时)。
以NextGEN 1.6.2为例:
“新增图集/图片”的路径是:admin.php?page=nggallery-add-gallery,我们在nextgen-gallery/admin/admin.php中查找“nggallery-add-gallery”,
case “nggallery-add-gallery” :
include_once ( dirname (__FILE__) . ‘/functions.php’ ); // admin functions
include_once ( dirname (__FILE__) . ‘/addgallery.php’ ); // nggallery_admin_add_gallery
$ngg->addgallery_page = new nggAddGallery ();
$ngg->addgallery_page->controller();
break;
类nggAddGallery在addgallery.php中,鼠标悬停在”新增图集“Tab上时从浏览器的状态栏可以看到URL是 admin.php?page=nggallery-add-gallery#addgallery , 在addgallery.php中查找”addgallery”看到其调用了:
nggAdmin::create_gallery($newgallery, $defaultpath);
nggAdmin类位于functions.php中,create_gallery函数修改如下:(红色粗体是新增加的行)
/**
* nggAdmin – Class for admin operation
*
* @package NextGEN Gallery
* @author Alex Rabe
* @copyright 2007-2010
* @access public
*/
class nggAdmin{
/**
* create a new gallery & folder
*
* 添加中文支持 by:Elf Sundae
*
* @class nggAdmin
* @param string $gallerytitle
* @param string $defaultpath
* @param bool $output if the function should show an error messsage or not
* @return
*/
function create_gallery($gallerytitle, $defaultpath, $output = true) {
global $wpdb, $user_ID;
// get the current user ID
get_currentuserinfo();
//cleanup pathname
$galleryname = sanitize_file_name( $gallerytitle );
// 中文转换为拼音
$galleryname = cn2pinyin($galleryname,1);
$galleryname = apply_filters(‘ngg_gallery_name’, $galleryname);
$nggpath = $defaultpath . $galleryname;
$nggRoot = WINABSPATH . $defaultpath;
$txt = ”;
其中cn2pinyin是汉字转换为拼音的函数,位于cn2pinyin.php(新建此文件)中。
cn2pinyin.php
download cn2pinyin.php at: http://elfsundae.pastebin.com/SqP7GxDW
另外,修改“新增图集”中的名称支持字符提示:
addgallery.php 中,Line:304
?>
<!– create gallery –>
/// ….
<?php _e(‘Create a new , empty gallery below the folder’, ‘nggallery’) ;?> <strong><?php echo $this->defaultpath ?></strong><br />
<?php } ?>
<i>(图集名称支持以下字符:中文、A-Z、a-z、0-9、-、_ ,中文将自动转换为拼音)</i></td>
</tr>
<?php do_action(‘ngg_add_new_gallery_form’); ?>
</table>
//…
</form>