Jacky sun

Good Good Study, Day Day Up!!!

 

ASP.NET Forums 2.0 本地化修改(三) 

今天这一部分比较简单,主要是一些细节的修改,过几天会推出一个新的模块,用户上传附件的管理:

下面先来说说今天要说的内容:
1、附件部分:如果附件为Flash,那么直接显示:
  修改AspNetForums.Controls.PostDisplay.TextPost:
        增加一方法:

private string ShowFlash(string FlashFileUrl)
        
{
            
string temp = "<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0">"
                
+ "<param name="movie" value="" + FlashFileUrl + "">"
                
+ "<param name="quality" value="high">"
                
+ "<embed src="" + FlashFileUrl + "" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"></embed>"
                
+ "</object>";

            
return temp;

        }


        
private string ShowFlash(string FlashFileUrl, int Width)
        
{
            
string temp = "<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="" + Width.ToString() + "">"
                
+ "<param name="movie" value="" + FlashFileUrl + "">"
                
+ "<param name="quality" value="high">"
                
+ "<embed src="" + FlashFileUrl + "" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="" + Width.ToString() + ""></embed>"
                
+ "</object>";

            
return temp;

        }


        
private string ShowFlash(string FlashFileUrl, int Width, int Height)
        
{
            
string temp = "<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="" + Width.ToString() + "" height="" + Height.ToString() + "">"
                
+ "<param name="movie" value="" + FlashFileUrl + "">"
                
+ "<param name="quality" value="high">"
                
+ "<embed src="" + FlashFileUrl + "" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="" + Width.ToString() + "" height="" + Height.ToString() + ""></embed>"
                
+ "</object>";

            
return temp;
        }

在原来的第二篇文章的修改的基础上,在判断是否为图片后,增加如下判断:

//判断是否为Flash,如果为Flash,那么直接显示
                
//added by jacky 2004-9-4
                if (contentType == "application/x-shockwave-flash")
                
{
                    body.Text 
+= Globals.HtmlNewLine + ShowFlash(Globals.GetSiteUrls().PostAttachment(post.PostID) + "&guid=" + attachment.CheckGuid,600,450);
                }

    补充:别忘了在后台设置中增加swf文件的上传设置;
    注意代码可能会缺少\,代码着色的时候被自动过滤掉了

 

posted on 2004-09-08 22:31 jacky 阅读(1442) 评论(7)  编辑 收藏

评论

#1楼 2004-09-14 23:56 york[未注册用户]

jacky,你好,我的论坛新增用户时,未自动给用户增加site register user权限,不知为何?谢谢  回复 引用   

#2楼 2004-09-16 00:04 jacky

修改存储过程:

CREATE           procedure forums_User_CreateUpdateDelete 
(
    @UserID 
int out,
    @UserName   
nvarchar (64= '',
    @Password   
nvarchar (64= '',
    @Email    
nvarchar (128= '',
    @StringNameValuePairs  
varbinary (7500= 0,
    @UserAccountStatus  
smallint = 1,
    @IsAnonymous   
smallint = 0,
    @PasswordFormat  
int = 1
    @PasswordQuestion  
nvarchar(256= '',
    @PasswordAnswer  
nvarchar(256= '',
    @Salt    
nvarchar (24= '',
    @AppUserToken       
varchar (128= '',
    @ForumView   
int = 0,
    @TimeZone   
float = 0.0,
    @PostRank   
binary(1= 0x0,
    @PostSortOrder   
int = 0,
    @IsAvatarApproved   
smallint  = 0,
    @ForceLogin   
bit   = 0,
    @ModerationLevel  
smallint  = 0,
    @EnableThreadTracking  
smallint  = 0,
    @EnableDisplayUnreadThreadsOnly 
smallint  = 0,
    @EnableAvatar    
smallint  = 0,
    @EnableDisplayInMemberList  
smallint  = 1,
    @EnablePrivateMessages  
smallint  = 1,
    @EnableOnlineStatus   
smallint  = 1,
    @EnableHtmlEmail   
smallint  = 1,
    @Action    
int
)
AS

-- this sproc returns various error/success codes
--
 a return value of 1 means success
--
 a return value of 2 means a dup username
--
 a return value of 3 means a dup email address
--
 first, we need to check if the username is a dup


-- Are we creating a user?
IF @Action = 0
BEGIN
    
IF @IsAnonymous = 1
    
BEGIN
        
SELECT @UserID = UserID FROM forums_Users WHERE UserName = @UserName AND IsAnonymous = 1
        
        
-- Check if the anonymous user already exists
        IF @UserID IS NOT NULL
        
BEGIN
            
SELECT 1
        
RETURN
    
END

END
    
-- check for username exists
IF EXISTS(SELECT UserName FROM forums_Users (nolock) WHERE UserName = @UserName AND IsAnonymous = 0)
    
SELECT 2
ELSE
    
-- we need to check if the email is a dup
    IF EXISTS(SELECT Email FROM forums_Users (nolock) WHERE Email = @Email AND IsAnonymous = 0)
        
SELECT 3
    
ELSE
    
BEGIN
        
-- INSERT the user
        INSERT INTO forums_Users 
            ( UserName, 
            Email, 
            Password, 
            PasswordFormat,
            Salt,
            PasswordQuestion,
            PasswordAnswer,
            UserAccountStatus,
            IsAnonymous,
            AppUserToken )
        
VALUES 
            ( @UserName, 
            @Email, 
            @Password, 
            @PasswordFormat,
            @Salt,
            @PasswordQuestion,
            @PasswordAnswer, 
            @UserAccountStatus,
            @IsAnonymous,
            @AppUserToken )
        
        
-- Get the new userID
        SET @UserID = @@IDENTITY
        
        
INSERT INTO forums_UserProfile
            
VALUES
            ( @UserID,
            @TimeZone,
            
0,
            @PostSortOrder,
            @StringNameValuePairs,
            @PostRank,
            @IsAvatarApproved,
            @ModerationLevel,
            @EnableThreadTracking,
            @EnableDisplayUnreadThreadsOnly,
            @EnableAvatar,
            @EnableDisplayInMemberList,
            @EnablePrivateMessages,
            @EnableOnlineStatus,
            @EnableHtmlEmail )
        
            
-- 追加注册用户到 Site Registered Users 角色
            exec forums_Role_AddUser @UserID,8
            
--追加角色结束

        
SELECT 1 -- return Everything's fine status code
    END
    
    
-- exit the sproc normally
    RETURN
END

-- Update the user
ELSE IF @Action = 1
BEGIN
    
-- First Update the forums_Users table
    UPDATE
        forums_Users
    
SET
        UserName 
= @UserName,
        Email 
= @Email,
        UserAccountStatus 
= @UserAccountStatus,
        ForceLogin 
= @ForceLogin
    
WHERE
        UserID 
= @UserID
    
    
-- Next, update the user's profile
    UPDATE
        forums_UserProfile
    
SET
        TimeZone 
= @TimeZone,
        PostRank 
= @PostRank,
        PostSortOrder 
= @PostSortOrder,
        StringNameValues 
= @StringNameValuePairs,
        IsAvatarApproved 
= @IsAvatarApproved,
        ModerationLevel 
= @ModerationLevel,
        EnableThreadTracking 
= @EnableThreadTracking,
        EnableDisplayUnreadThreadsOnly 
= @EnableDisplayUnreadThreadsOnly,
        EnableAvatar 
= @EnableAvatar,
        EnableDisplayInMemberList 
= @EnableDisplayInMemberList,
        EnablePrivateMessages 
= @EnablePrivateMessages,
        EnableOnlineStatus 
= @EnableOnlineStatus,
        EnableHtmlEmail 
= @EnableHtmlEmail
    
WHERE
        UserID 
= @UserID

END
GO
 回复 引用   

#3楼 2004-09-16 12:58 york[未注册用户]

thank you  every much  回复 引用   

#4楼 2004-09-21 18:12 york[未注册用户]

论坛统计不及时啊,如何解决,谢谢
 回复 引用   

#5楼 2004-10-09 11:40 踏雪无痕

为何我每次都安装不起啊?
我的系统是WinPro+MS SQL 2000 Dev
总是提示创建数据库的时候脚本错误
 回复 引用   

#6楼[楼主] 2004-10-09 11:44 jacky      

@york:
论坛统计不及时是因为原来的缓存时间比较长的缘故,bbs.hidotnet.com上可以下新的版本,已经修改了。

@踏雪无痕 :
具体是什么错误信息? 你用的什么版本的?
 回复 引用 查看   

#7楼 2004-10-26 17:45 york[未注册用户]

我不能覆盖原来的论坛,能否告之代码吗?谢谢  回复 引用   

导航

统计

公告

昵称:jacky
园龄:7年10个月
粉丝:0
关注:0

搜索

 
 

常用链接

随笔分类

随笔档案

文章分类

文章档案

站点链接

积分与排名

最新评论

阅读排行榜

评论排行榜

推荐排行榜