【www.gdgbn.com--WordPress】

修改了部分方法. 表情直接从目录中读取.所以现在可以方便的增减表情图片了.只需把图片放入face目录即可.不过暂时还不支持中文图片名称.

php教程
/*
修改
1. face目录中可以任意增减表情图片(暂不支持中文)
2. 默认支持 jpg, jpeg, png, 与gif 格式表情图片

description: 评论表情插件

*/

if(!class_exists("silver_smilies"))
{
    class silver_smilies
    {
        private $img_dir;
        private $img_path;
        private $face_files = array();
        private $allow_extension = array();

        public function __construct($allow_extension)
        {
            $this->img_path = get_settings("siteurl") . "/wp-content/plugins/silver_smilies/face";
            $this->img_dir  = wp_plugin_dir . "/silver_smilies/face";
            $this->allow_extension = $allow_extension;
            $this->face_files = $this->get_face_files();
            add_action("comment_form", array(& $this, "smilie_faces"));
            add_filter("comment_text", array(& $this, "smilie_replace"));
        }

        private function get_face_files()
        {
            $files = array();
            if(is_dir($this->img_dir))
            {
                if ($dh = opendir($this->img_dir))
                {
                    while (($file = readdir($dh)) !== false)
                    {
                        if($file == ".") continue;
                        if($file == "..") continue;
                        $fileinfo = explode(".", (basename($file)));
                        if(in_array($fileinfo[1], $this->allow_extension))
                        {
                            $files[] = array(
                                "filename" => $fileinfo[0],
                                "extension" => $fileinfo[1],
                            );
                        }
                    }
                    closedir($dh);
                }
            }
            return $files;
        }


        // 显示表情图片
        public function smilie_faces()
        {
            foreach($this->face_files as $value)
            {
                echo "{$value[";
            }

            echo <<             <script type="text/网页特效">
            function inface(img)
            {
                document.getelementbyid("comment").value += "[face:" + img + "]";
            }
            </script>
end;
        }

        // 转换为表情图片
        public function smilie_replace($comment_text)
        {
            $keys = array();
            $smilies = array();
            foreach($this->face_files as $value)
            {
                $keys[] = "[face:{$value["filename"]}]";
                $smilies[] = "{$value[";
            }

            $comment_text = str_replace($keys,$smilies,$comment_text);
            return $comment_text;
        }
    }
}

if(!isset($silver_smilies))
{


 $silver_smilies =& new silver_smilies(array("gif", "jpeg", "jpg", "png"));
}
?>

本文来源:http://www.gdgbn.com/wangyezhizuo/29731/