[FCKEditor]FCKeditor远程图片自动上传

mikel阅读(906)

声明:原作者是武眉博<活靶子.NET>(见http://www.cnblogs.com/huobazi/archive/2007/11/02/fckeditorremoteimagerubber.html).
本人只是在此基础上进行了完善.
原有功能:保存远程图片到本地
完善后功能:
    1)使用FckEditor配置的上传路径,不必手工配置了.
    2)对于本地图片不再提交到服务器验证,节省点时间:).
    3)修正原来有时不能正常采集的bug.
    4)修正原来不能正确替换路径的问题,
      原作者是这样做的imageUrls[_imgIndex].src = localList[_imgIndex]; 经多次测试无效,无奈之下查看fck源码发现了fck使用的方法.
      这样写就没问题了:

imageUrls[_imgIndex].src = localList[_imgIndex];
imageUrls[_imgIndex].setAttribute(
"_fcksavedurl", localList[_imgIndex], 0) ;

使用方法:
    1)把remoteimagerubber.aspx和fckplugin.js复制到fckeditor/editor/plugins/remoteimagerubber/下.
    2)在fckeditor/editor/lang/下找到语言包如zh-cn.js,添加如下语句:

var FCKLang =
{
    RemoteImageRubberBtn:   
"保存远程图片",
}

    3)在fckconfig.js文件的相应位置添加工具按钮'RemoteImageRubber'
    4)在fckconfig.js文件中找到FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;有它下面添加语句FCKConfig.Plugins.Add( 'remoteimagerubber' ) ;
   
由于我的fckeditor已经集成到系统里了,所以不方便拿出来,只把需要的几个文件提供出来吧

下载
/Files/xkzi/remoteimagerubber.rar

[JQuery]240多个JQuery的插件

mikel阅读(892)

概述

JQuery 是继 prototype 之后又一个优秀的 JavaScript 框架。其宗旨是—写更少的代码,做更多的事情。它是轻量级的 js 库(压缩后只有21k) ,这是其它的 js 库所不jquery及 的,它兼容 CSS3,还兼容各种浏览器(IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。 JQuery 是一个快速的,简洁的 JavaScript 库,使用户能更方便地处理 HTML documents、events、实现动画效果,并且方便地为网站提供 AJAX 交互。 jQuery 还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。 jQuery 能够使用户的 html 页保持代码和 html 内容分离,也就是说,不用再在 html 里面插入一堆js来调用命令了,只需定义 id 即可。今天在Kollermedia.at上发现了一篇jQuery插件列表的文章,特推荐如下。

文件上传(File upload)JQuery_001

Ajax File Upload.
jQUploader.
Multiple File Upload plugin
jQuery File Style.
Styling an input type file.
Progress Bar Plugin.

表单验证(Form Validation)

jQuery Validation.
Auto Help.
Simple jQuery form validation.
jQuery XAV – form validations.
jQuery AlphaNumeric.
Masked Input.
TypeWatch Plugin.
Text limiter for form fields.
Ajax Username Check with jQuery.

表单-选取框(Form – Select Box stuff)

jQuery Combobox.
jQuery controlled dependent (or Cascadign) Select List.
Multiple Selects.
Select box manipulation.
Select Combo Plugin.
jQuery – LinkedSelect
Auto-populate multiple select boxes.
Choose Plugin (Select Replacement).

表单基本、输入框、选择框等(Form Basics, Input Fields, Checkboxes etc.)

jQuery Form Plugin.
jQuery-Form.
jLook Nice Forms.
jNice.
Ping Plugin.
Toggle Form Text.
ToggleVal.
jQuery Field Plugin.
jQuery Form’n Field plugin.
jQuery Checkbox manipulation.
jTagging.
jQuery labelcheck.
Overlabel.
3 state radio buttons.
ShiftCheckbox jQuery Plugin.
Watermark Input.
jQuery Checkbox (checkboxes with imags).
jQuery SpinButton Control.
jQuery Ajax Form Builder.
jQuery Focus Fields.
jQuery Time Entry.

时间、日期和颜色选取(Time, Date and Color Picker)

jQuery UI Datepicker.
jQuery date picker plugin.
jQuery Time Picker.
Time Picker.
ClickPick.
TimePicker.
Farbtastic jQuery Color Picker Plugin.
Color Picker by intelliance.fr.

投票插件(Rating Plugins)

jQuery Star Rating Plugin.
jQuery Star Rater.
Content rater with asp.net, ajax and jQuery.
Half-Star Rating Plugin.

搜索插件(Search Plugins)

jQuery Suggest.
jQuery Autocomplete.
jQuery Autocomplete Mod.
jQuery Autocomplete by AjaxDaddy.
jQuery Autocomplete Plugin with HTML formatting.
jQuery Autocompleter.
AutoCompleter (Tutorial with PHP&MySQL).
quick Search jQuery Plugin.

编辑器(Inline Edit & Editors)JQuery_002

jTagEditor.
WYMeditor.
jQuery jFrame.
Jeditable – edit in place plugin for jQuery.
jQuery editable.
jQuery Disable Text Select Plugin.
Edit in Place with Ajax using jQuery.
jQuery Plugin – Another In-Place Editor.
TableEditor.
tEditable – in place table editing for jQuery.

多媒体、视频、Flash等(Audio, Video, Flash, SVG, etc)

jMedia – accessible multi-media embedding.
JBEdit – Ajax online Video Editor.
jQuery MP3 Plugin.
jQuery Media Plugin.
jQuery Flash Plugin.
Embed QuickTime.
SVG Integration.

图片(Photos/Images/Galleries)

ThickBox.
jQuery lightBox plugin.
jQuery Image Strip.
jQuery slideViewer.
jQuery jqGalScroll 2.0.
jQuery – jqGalViewII.
jQuery – jqGalViewIII.
jQuery Photo Slider.
jQuery Thumbs – easily create thumbnails.
jQuery jQIR Image Replacement.
jCarousel Lite.
jQPanView.
jCarousel.
Interface Imagebox.
Image Gallery using jQuery, Interface & Reflactions.
simple jQuery Gallery.
jQuery Gallery Module.
EO Gallery.
jQuery ScrollShow.
jQuery Cycle Plugin.
jQuery Flickr.
jQuery Lazy Load Images Plugin.
Zoomi – Zoomable Thumbnails.
jQuery Crop – crop any image on the fly.
Image Reflection.

Google地图(Google Map)

jQuery Plugin googlemaps.
jMaps jQuery Maps Framework.
jQmaps.
jQuery & Google Maps.
jQuery Maps Interface forr Google and Yahoo maps.
jQuery J Maps – by Tane Piper.

游戏(Games)

Tetris with jQuery.
jQuery Chess.
Mad Libs Word Game.
jQuery Puzzle.
jQuery Solar System (not a game but awesome jQuery Stuff).

表格等(Tables, Grids etc.)

UI/Tablesorter.JQuery_003
jQuery ingrid.
jQuery Grid Plugin.
Table Filter – awesome!.
TableEditor.
jQuery Tree Tables.
Expandable “Detail” Table Rows.
Sortable Table ColdFusion Costum Tag with jQuery UI.
jQuery Bubble.
TableSorter.
Scrollable HTML Table.
jQuery column Manager Plugin.
jQuery tableHover Plugin.
jQuery columnHover Plugin.
jQuery Grid.
TableSorter plugin for jQuery.
tEditable – in place table editing for jQuery.
jQuery charToTable Plugin.
jQuery Grid Column Sizing.
jQuery Grid Row Sizing.

统计图(Charts, Presentation etc.)

jQuery Wizard Plugin .
jQuery Chart Plugin.
Bar Chart.

边框、圆角、背景(Border, Corners, Background)

jQuery Corner.
jQuery Curvy Corner.
Nifty jQuery Corner.
Transparent Corners.
jQuery Corner Gallery.
Gradient Plugin.

文字和超链接(Text and Links)

jQuery Spoiler plugin.
Text Highlighting.
Disable Text Select Plugin.
jQuery Newsticker.
Auto line-height Plugin.
Textgrad – a text gradient plugin.
LinkLook – a link thumbnail preview.
pager jQuery Plugin.
shortKeys jQuery Plugin.
jQuery Biggerlink.
jQuery Ajax Link Checker.

鼠标提示(Tooltips)

jQuery Plugin – Tooltip.
jTip – The jQuery Tool Tip.
clueTip.
BetterTip.
Flash Tooltips using jQuery.
ToolTip.

菜单和导航(Menus, Navigations)

jQuery Tabs Plugin – awesome! . [demo nested tabs.]
another jQuery nested Tab Set example (based on jQuery Tabs Plugin).
jQuery idTabs.
jdMenu – Hierarchical Menu Plugin for jQuery.
jQuery SuckerFish Style.
jQuery Plugin Treeview.
treeView Basic.
FastFind Menu.
Sliding Menu.
Lava Lamp jQuery Menu.
jQuery iconDock.
jVariations Control Panel.
ContextMenu plugin.
clickMenu.
CSS Dock Menu.
jQuery Pop-up Menu Tutorial.
Sliding Menu.

http://stilbuero.de/jquery/tabs_3/

幻灯、翻转等(Accordions, Slide and Toggle stuff)

jQuery Plugin Accordion.
jQuery Accordion Plugin Horizontal Way.
haccordion – a simple horizontal accordion plugin for jQuery.
Horizontal Accordion by portalzine.de.
HoverAccordion.
Accordion Example from fmarcia.info.
jQuery Accordion Example.
jQuery Demo – Expandable Sidebar Menu.
Sliding Panels for jQuery.
jQuery ToggleElements.
Coda Slider.
jCarousel.
Accesible News Slider Plugin.
Showing and Hiding code Examples.
jQuery Easing Plugin.
jQuery Portlets.
AutoScroll.
Innerfade.

拖放插件(Drag and Drop)

UI/Draggables.
EasyDrag jQuery Plugin.
jQuery Portlets.
jqDnR – drag, drop resize.
Drag Demos.

XML XSL JSON Feeds

XSLT Plugin.
jQuery Ajax call and result XML parsing.
xmlObjectifier – Converts XML DOM to JSON.
jQuery XSL Transform.
jQuery Taconite – multiple Dom updates.
RSS/ATOM Feed Parser Plugin.
jQuery Google Feed Plugin.

浏览器(Browserstuff)

Wresize – IE Resize event Fix Plugin.
jQuery ifixpng.
jQuery pngFix.
Link Scrubber – removes the dotted line onfocus from links.
jQuery Perciformes – the entire suckerfish familly under one roof.
Background Iframe.
QinIE – for proper display of Q tags in IE.
jQuery Accessibility Plugin.
jQuery MouseWheel Plugin.

对话框、确认窗口(Alert, Prompt, Confirm Windows)

jQuery Impromptu.
jQuery Confirm Plugin.
jqModal.
SimpleModal.

CSS

jQuery Style Switcher.
JSS – Javascript StyleSheets.
jQuery Rule – creation/manipulation of CSS Rules.
jPrintArea.

DOM、AJAX和其它JQuery插件(DOM, Ajax and other jQuery plugins)

FlyDOM.
jQuery Dimenion Plugin.
jQuery Loggin.
Metadata – extract metadata from classes, attributes, elements.
Super-tiny Client-Side Include Javascript jQuery Plugin.
Undo Made Easy with Ajax.
JHeartbeat – periodically poll the server.
Lazy Load Plugin.
Live Query.
jQuery Timers.
jQuery Share it – display social bookmarking icons.
jQuery serverCookieJar.
jQuery autoSave.
jQuery Puffer.
jQuery iFrame Plugin.
Cookie Plugin for jQuery.
jQuery Spy – awesome plugin.
Effect Delay Trick.
jQuick – a quick tag creator for jQuery.
Metaobjects
.
elementReady.

英文:http://www.kollermedia.at/archive/2007/11/21/the-ultimate-jquery-plugin-list/

[C#]Entity Framework之Entity SQL(三) 1:N关系型数据的查询

mikel阅读(1048)

SQL中,要在一个一对多关系中查询数据,不免要使用JOIN关键字。在Entity Framework中,由于引入了Navigation属性的概念,我们可以通过Navigation属性,直接在多个实体之间进行查询而不必过多的关心 主键、外键约束……本文将通过一个Demo,来展现如何通过Entity SQL,方便在1对多关系的实体间进行查询。

进入正题之前,让我们来看一下当前数据库的情形,以及我们将要完成的任务。

本文主要将涉及到两个表的查询:Warehouse和Notebook。Warehouse中有三个仓库的记录;Notebook中有6台笔记本的记录;每个笔记本至多属于一个仓库,每个仓库可以存储0个或者多个笔记本。于是,在笔记本与仓库之间,构成N:1的关系。

本文将要进行两组查询,分别给出SQL查询与Entity SQL的查询语句,以方便比较。第一组查询,以1端为条件,查询多端结果;第二组查询,以多端为条件,反过来查询1端的结果。

实例1 查询出全部存放在仓库的城市为"SH"的笔记本——N到1查询

SQL实现如下:

Select n.* FROM Notebook as n

INNER JOIN Warehouse as w

ON n.WarehouseId=w.Id

Where w.City='SH'

我们把Notebook与Warehouse通过仓库ID内联以后,以1端,即Warehouse端作为条件,查询出全部在上海的笔记本。下面的Entity SQL语句,可以达到相同的效果:

Select VALUE n FROM DemoDbEntities.Notebook AS n

Where n.Warehouse.City = 'SH'

我们通过Notebook的Navigation属性——Warehouse,访问到对应的仓库所在的城市,进而来过滤出附合条件的笔记本。我们来看一个ObjectQuery的实现接口:

private static void RelNav1()

{

     string query = "Select VALUE n FROM DemoDbEntities.Notebook AS n"

                    + " Where n.Warehouse.City = 'SH'";

     using (ObjectContext oc = new ObjectContext(ConnectionString))

     {

          oc.Connection.Open();

          foreach(Notebook notebook in new ObjectQuery<Notebook>(query,oc))

          {

               Console.WriteLine("{0} {1}", notebook.Brand, notebook.Type);

          }

     }

}

其中,ConnectionString是连接字符串。这一查询模式我们在前文已经介绍过,这里不再赘述了。

实例2 查询出全部的存有品牌为"ThinkPad"或者"Lenovo"的仓库——1到N查询

SQL实现如下:

Select DISTINCT w.* FROM Notebook AS n

INNER JOIN Warehouse AS w

ON n.WarehouseId = w.Id

Where n.Brand='ThinkPad' OR n.Brand='Lenovo'

在SQL中实现的思路与实例1一样,都是把Notebook和Warehouse作内连接,只不过,把Where条件修改为n的品牌;而Select的是w.*。

Entity SQL在作1到N的查询时,稍有一点点不大一样,不过,仍然十分方便:

Select VALUE DISTINCT w FROM DemoDbEntities.Warehouse AS w, w.Notebook as nbs

Where nbs.Brand = 'ThinkPad' OR nbs.Brand='Lenovo'

我 们首先选出所有Warehouse,记为w,然后,把w.Notebook记为nbs,然后,设置查询条件nbs.Brand为"ThinkPad"或 者"Lenovo"。这里有一个顺序,在FROM子句中,允许访问在先前已经定义的别名。这就是为什么我们在定义了w之后,可以马上访问 w.Notebook。

ObjectQuery实现接口与实例1中的接口一致,唯一差别在于修改了查询串:

private static void RelNav2()

{

     string query =

          "Select VALUE DISTINCT w FROM DemoDbEntities.Warehouse AS w, w.Notebook as nbs " +

          " Where nbs.Brand = 'ThinkPad' or nbs.Brand='Lenovo'";

     using (ObjectContext oc = new ObjectContext(ConnectionString))

     {

          oc.Connection.Open();

          foreach (Warehouse w in new ObjectQuery<Warehouse>(query, oc))

          {

               Console.WriteLine("{0} {1}", w.Name, w.City);

          }

     }

}

 

我们看到,通过Entity SQL,我们需要关心的,不再是关系模型中表与表之间的关系、主键、外键、连接,而只要处理好Navigation属性即可。只要建立了Navigation属性,哪怕不存在外键约束,一样可以在多个实体集之间进行联合查询。

另外,需要说明的是,Where子句里,要求提供的是集合,而不是单个值。举例说明,当存在一个如下的查询语句:

Select VALUE DISTINCT w FROM DemoDbEntities.Notebook AS n, n.Warehouse as w

Where w.City='SH'

由于Notebook与Warehouse是多对一的关系,因此,n.Warehouse,即w必定是1,而不是集合。然后,很不凑巧,w.City又出现在了Where子句里。因此,会得到一个与下述类似的错误信息:

The specified expression must be of CollectionType.

对于以上的语句,第一,可以修改成实例1中所述的形式。另外,还有一个快速的Workaround,虽然不推荐使用,但这有利于大家理解Where子句中必须提供集合:

Select VALUE DISTINCT w FROM DemoDbEntities.Notebook AS n, {n.Warehouse} as w

Where w.City='SH'

我们把{n.Warehouse}记为w,w便成了一个集合,便可以出现在Where子句中了。

小结:

本文简单的介绍了Entity SQL在一对多查询中的应用;我们举例说明了1对多以及多对1的关系场景,并且了解到,在Entity SQL中,不再需要过多的考虑关系模型中的主外键约束情况,而更多的使用Navigation属性。

Demo下载

1. 数据库文件

2. 源代码(C#版)

Little knowledge is dangerous.

[SNS]SNS开源项目汇总

mikel阅读(762)

现在建一个sns网站就和做个论坛一样容易,因为sns的开源代码已经满天飞,这里搜集整理一些sns源码,供大家研究参考。

uchome是discuz!旗下的一款开源sns代码,目前发展迅速,使用者众多,据称1.5版本将支持第三方开发的应用组件,相信将带来更大的应用。

ThinkSNS也是php+mySQL架构,多模版,多语言支持,内置支持WordPress式插件开发,另外还有IM客户端软件。

openpne是日本主流的SNS建站程序,免费开源代码,国内有公司做了openpne中文版,不过他们竟然用来卖钱,实在是有些过分,另外OpenKaku也是基于openpne开发的一款sns产品,奇怪的是最近访问竟然是邮箱界面。

Community Server是国外重量级的sns社区源码,不过只开放了Express Edition版本,其他版本只提供了试用版。大家可以看看相关的中文化网站,能找到不少资料。

insoshi也是一个类似Facebook的建站程序,基于Ruby on Rails构建。

AROUNDMe也是类似Ning, Myspace, Google groups的一个免费社会化网站源码,自定义性非常强。


PHPizabi也是一个很强大的社会化交友平台,在国外使用较多。

CHSNS
也是一个中文sns源码项目,基于SQL+.net,虽然有免费版本,但并没有完全开源。

iSocial

免费的社会化CMS系统,可以创建类似Friendster和Orkut的站点。

Yogurt
这是基于xoops CMS的一个社会化插件.

其他社会化源码:
VMukti
Appleseed
AstroSPACES
FlightFeather
SNOSS
OpenSocialNetwork
Facelift
Mahara

部分资料来源vivalogo

[MVC]跟踪真实世界里的ASP.NET MVC项目

mikel阅读(984)

跟踪真实世界里的ASP.NET MVC项目

文/Robert Bazinet  译/赵劼  出处/InfoQ
微软ASP.NET MVC框架的第二个技术预览版已经在三月份的MIX08大会上发布,不过它在4月16日又更新了代码。这意味着微软和社区都给这个项目带来了不少有价值的事情。人们现在不仅仅在创建示例代码,而是在创建真实的项目。
开发人员能够使用这些应用程序,而有些还处于开发之中,也可以从中学习或者使用它们来开发自己的应用程序。
MVC StoreFront
Rob Conery记 录了使用MVC框架设计和创建一个店面(storefront)的过程,并且结合了测试驱动开发等敏捷开发实践,以及Repository Pattern等常用模式。Rob 在这个领域有许多经验,他是ASP.NET 2.0 Commerce Start Kit的最早开发者,也就是后来的dashCommerce
MVC Stroefront还是一个正在进行中的系列,这使读者能够经历一个从设计到开发一个ASP.NET MVC应用程序的完整过程。系列中的每部分都包含一个针对当前部分意图的描述,以及一个视频来展示代码。

项目最新的代码能够在CodePlex上找到
博客引擎
Keyvan Nayyeri有一个使用ASP.NET MVC开发一个博客引擎(Blog Engine)的系列。建立一个博客引擎似乎是一个向人们展示技术的流行方法,而这个项目做的不错。大部分开发人员与博客关系密切。

Kigg – Digg的克隆
这个Digg的克隆产品是一个使用MVC框架的优秀实现。这个程序属于Dotnetslackers站点的一部分。这份指南面向.NET开发人员工作中的几个重要部分:
   

项目最新的代码能够在CodePlex上找到
其他一些展示ASP.NET MVC的功能的项目还刚刚起步。请继续在InfoQ站点上关注新项目以及本文这些项目的进展。

[SQL]SQL Server2005分页查询

mikel阅读(897)

Select * FROM (
    select ROW_NUMBER()Over(order by cf_id desc) as rowId,* from T_Test 
) as mytable
where rowId between 21 and 40
每页20条,第2页
ROW_NUMBER是SQLServer2005中的新特性
以下是利用本方法和传统利用Set RowCount方法存储过程的效率比较结果:
未建索引情况下:
500w数据: 存储过程1分20秒 , 新方法1分18秒
400w数据:存储过程47秒,新方法41秒
300w数据:存储过程35秒,新方法30秒
200w数据:存储过程25秒,新方法20秒
100W数据:存储过程12秒,新方法10秒
 50W数据:存储过程 7秒,新方法 0秒

[FCKEditor]FCKeditor2.4的配置文件

mikel阅读(717)

FCKeditor确实是一款不错的网页在线编辑器,功能非常之强大,但是作为一个初学者,它的使用和配置还是比较复杂的,网上有关的介绍凌乱而复杂。为此我专门做一下介绍,希望对你有所帮助!

注:本文使用的FCKeditor是2.4版的,asp和js在配置上是一样的,但在调用上有一点区别

一、FCKeditor的配置

这些配置其实安默认的也可以,如果你不喜欢的话,就可以修改了,大多数配置在fckconfig.js文件中,此文件在FCKeditor文件夹的根目录下

1、常用设置

AutoDetectLanguage=true/false 自动检测语言

BaseHref="" 相对链接的基地址

ContentLangDirection="ltr/rtl" 默认文字方向

ContextMenu=字符串数组,右键菜单的内容

CustomConfigurationsPath="" 自定义配置文件路径和名称

Debug=true/false 是否开启调试功能,这样,当调用FCKDebug.Output()时,会在调试窗中输出内容

DefaultLanguage="" 缺省语言

EditorAreaCss="" 编辑区的样式表文件

EnableSourceXHTML=true/false 为TRUE时,当由可视化界面切换到代码页时,把HTML处理成XHTML

EnableXHTML=true/false 是否允许使用XHTML取代HTML

FillEmptyBlocks=true/false 使用这个功能,可以将空的块级元素用空格来替代

FontColors="" 设置显示颜色拾取器时文字颜色列表

FontFormats="" 设置显示在文字格式列表中的命名

FontNames="" 字体列表中的字体名

FontSizes="" 字体大小中的字号列表

ForcePasteAsPlainText=true/false 强制粘贴为纯文本

ForceSimpleAmpersand=true/false 是否不把&符号转换为XML实体

FormatIndentator="" 当在源码格式下缩进代码使用的字符

FormatOutput=true/false 当输出内容时是否自动格式化代码

FormatSource=true/false 在切换到代码视图时是否自动格式化代码

FullPage=true/false 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容

GeckoUseSPAN=true/false 是否允许SPAN标记代替B,I,U标记

IeSpellDownloadUrl=""下载拼写检查器的网址

ImageBrowser=true/false 是否允许浏览服务器功能

ImageBrowserURL="" 浏览服务器时运行的URL

ImageBrowserWindowHeight="" 图像浏览器窗口高度

ImageBrowserWindowWidth="" 图像浏览器窗口宽度

LinkBrowser=true/false 是否允许在插入链接时浏览服务器

LinkBrowserURL="" 插入链接时浏览服务器的URL

LinkBrowserWindowHeight=""链接目标浏览器窗口高度

LinkBrowserWindowWidth=""链接目标浏览器窗口宽度

Plugins=object 注册插件

PluginsPath="" 插件文件夹

ShowBorders=true/false 合并边框

SkinPath="" 皮肤文件夹位置

SmileyColumns=12 图符窗列数

SmileyImages=字符数组 图符窗中图片文件名数组

SmileyPath="" 图符文件夹路径

SmileyWindowHeight 图符窗口高度

SmileyWindowWidth 图符窗口宽度

SpellChecker="ieSpell/Spellerpages" 设置拼写检查器

StartupFocus=true/false 开启时FOCUS到编辑器

StylesXmlPath="" 设置定义CSS样式列表的XML文件的位置

TabSpaces=4 TAB键产生的空格字符数

ToolBarCanCollapse=true/false 是否允许展开/折叠工具栏    

2、文件上传

FCKeditor 的文件管理程序在fckeditor\editor\filemanager文件夹中,又分为浏览(browser)和上传(upload)两种。浏览指浏览服务器中的文件,上传指上传本地文件。

打开和关闭文件浏览和上传功能

首先是fckconfig.js文件,以下内容设为true为开,false则为关。

文件浏览和浏览中上传功能:

FCKConfig.LinkBrowser = false ;

FCKConfig.ImageBrowser = false ;

FCKConfig.FlashBrowser = false ;

文件快速上传功能:

FCKConfig.LinkUpload = true ;

FCKConfig.ImageUpload = true ;

FCKConfig.FlashUpload = true ;

其次设置两个asp文件:

editor\filemanager\browser\default\connectors\asp\config.asp

ConfigIsEnabled = False

表示文件浏览关闭

editor\filemanager\upload\asp\config.asp

ConfigIsEnabled = True

表示文件快速上传打开

文件上传或浏览的路径设置

注意FCKeditor是不支持虚拟目录的,您的所有路径都是针对网站根目录的绝对路径,这点对于在本地测试用虚拟目录,发布到远程用网站目录的开 发者不太方便。我的就是这样,WinXP系统只能一个站点,只有用虚拟目录表示不同的网站,在本地测试好了,上传前还要临时更改这个设置。

文件浏览路径,打开文件editor\filemanager\browser\default\connectors\asp\config.asp:

ConfigUserFilesPath = "/attachments/"

快速上传的路径,打开文件editor\filemanager\upload\asp\config.asp:

ConfigUserFilesPath = "/attachments/"

我的文件目录在http://127.0.0.1/temp/下面,就照以上设置。如果在本地测试这个网站在虚拟目录xxx中,则应该设置为:

ConfigUserFilesPath = "/127.0.0.1/temp/"

文件快速上传的一个源文件BUG

以上设置好后,文件浏览和浏览中上传可以顺利进行,但是你会发现“快速上传”不能用。现象就是当选择好本地文件后,点击“上传至服务器”的按钮后没有任何反应。这就是因为fckconfig.js文件中的一个bug所致。

打开fckconfig.js文件,把FCKConfig.QuickUploadLanguage字样的地方,替换成_QuickUploadLanguage,一共要替换三个地方。前者没有定义就使用,所以有错,按代码意图应该和后者的值一样的。

上传文件名自动更名

FCKeditor 不支持中文文件名称,所以我们要让文件存入服务器时更改名称。由于有两个上传的地方,而且所用文件不同,所以两个文件应该同时改,我们先来看看快速上传的 文件,打开editor\filemanager\upload\asp\upload.asp,在文件最后添加以下函数:

Public Function GetNewFileName()

dim ranNum

dim dtNow

dtNow=Now()

randomize

ranNum=int(90*rnd)+10

GetNewFileName=year(dtNow) & right("0" & month(dtNow),2) & right("0" & day(dtNow),2) & right("0" & hour(dtNow),2) & right("0" & minute(dtNow),2) & right("0" & second(dtNow),2) & ranNum

End Function

我们用年月日时分秒和两位随机数字来作为文件名,这样既能够分辨出文件上传时间,也不容易重名。

然后仍然是这个文件,找到:

'' Get the uploaded file name.

sFileName = oUploader.File( "NewFile" ).Name

把它改为:

'' Get the uploaded file name.

sFileName = GetNewFileName() &"."& split(oUploader.File( "NewFile" ).Name,".")

上面说的是快速上传的文件,而文件浏览中上传则是更改另外一个文件(editor\filemanager\browser\default\connectors\asp\commands.asp),其修改方法和上面那个文件一样:添加一个函数,修改一行代码。

二、在asp中调用FCKeditor

1、 加上<!–#include file="FCKeditor/fckeditor.asp" –>

2、 使用

<%

Dim oFCKeditor

Set oFCKeditor = New FCKeditor

oFCKeditor.BasePath = "FCKeditor/" //设置编辑器的路径,我站点根目录下的一个目录

oFCKeditor.ToolbarSet = "Default"

oFCKeditor.Width = "100%"

oFCKeditor.Height = "600"

oFCKeditor.Value = "" //这个是给编辑器初始值

oFCKeditor.Create "logbody" //以后编辑器里的内容都是由这个logbody取得,命名由你定

%>

三、在js中调用

1,添加<script type="text/JavaScript" src="fckeditor/fckeditor.js"></script>

2,调用

<script type="text/JavaScript">

var oFCKeditor = new FCKeditor( 'logbody' ) ;

oFCKeditor.BasePath = ' FCKeditor/' ;

oFCKeditor.ToolbarSet = 'Basic' ;

oFCKeditor.Width = '100%' ;

oFCKeditor.Height = '400' ;

oFCKeditor.Value = '' ;

oFCKeditor.Create() ;

</script>

三、关于初始化FCKeditor中的一个问题

利用asp的时候,从数据库里取出的值已经是html语言,直接使用下面的方法初始化:

oFCKeditor.Value = show(“body”)

会产生错误。

解决办法:修改文件FCKeditor.asp

[资源]某人的开发工具助手

mikel阅读(1080)

前言:

    高效快速开发是每个程序员追求的目标,但如何做到既高效又能让客户满意呢?我想一个好的团队肯定可以,但如果水平一般,没有太多开发经验的 团队或者是独行侠之流就没有办法了吗?相信有人想到ORM工具,诚然ORM工具能帮助我们实现开发出高效质优的项目,但ORM自诞生之日便遭到很多人的质 疑,效率是ORM的硬伤。当然,在这里我无意评判ORM的功过或诋毁ORM,但至今还有很多人没有用ORM开发项目这是不争的现实。

    在我们开发的项目中,特别是以数据存储为基础的项目,数据访问层和业务层存在大量雷同的代码,用ORM工具则根本不需要写这方面的代码,而 如果不用ORM工具的话,写这样的代码既烦琐又无聊,于是代码生成器应运而生。运用代码生成器,以数据库的库表结构为基础,可以快速生成数据访问的相关代 码,极大的提高开发效率,于是代码生成器成了不使用ORM工具开发人员的手中利器,于是各种代码生成器忽如一夜春风来,千树万树梨花开,好不热闹。但很多 人开发的生成器都是为自己或公司的项目设计,无法适用他人。很多人将代码生成器开源,但既便有了源代码自己动手去改也是挺麻烦的,添加或修改生成代码的 类、菜单或按钮,调试、编译等一大堆问题接踵而至到最后不甚其烦。我们需要可自由扩展、架构开放的代码生成器,市面上有很多这样的工具,最常用的如 Code Smith等,只可惜是收费的。

    于是.net项目开发工具诞生了,采用插件式结构,可自由扩展而且完全免费。

.NET项目开发工具简介:

    .NET项目开发工具是一款采用开放式架构,允许使用者开发和加载不同的插件,以实现操作不同类型的数据库和生成各种风格的代码等。以下为主界面:

        

    我们看一下插件开发和使用的流程:
    1.实现相关接口(数据访问、生成SQL代码或生成代码任选)创建插件。
    2.加载插件。依次打开 主界面 –> 工具箱 –> 安装新插件 — > 选择插件文件(*.dll) 或 直接将插件文件复制到系统的插件目录(PlugIns),系统会自动监测到新的插件并提示是否载入,选择“是”将载入所有插件,然后打开 系统配置,然后新建或打开某一配置方案,可在相关插件列表中预览插件相关信息。选择插件完成配置后,打开刚刚创建或修改的配置方案。以下为相关图示:
        

        

        

        

        

    如果你对插件开发感兴趣的话,请往下看。

相关接口简介

1.数据访问接口。
    .数据查询接口(PlugInInterface/IDataAccess),目的以实现不同类型、版本的数据库访问(如支持SQLServer2000,SQLServer2005,SQLServer2008,MySql,Oracle等)。

2.生成SQL代码接口。
    .生成SQL脚本接口(PlugInInterface/IGenSQL),目的以实现针对不同类型、版本的数据库生成SQL脚本(如支持SqlServer2000,SqlServer2005,SqlServer2008,MySql,Oracle等)。

3.生成代码的接口。
    .生成程序代码接口(PlugInInterface/IGenSymLanguage),目的以实现生成各种风格的代码(如简单三层,PetShop结构或其它架构的代码)。

点击查看原图

4.数据库实体对象接口。
    .数据库实体对象接口(PlugInInterface/IEntities目录中一系列实体对象接口),用于描述数据库对象的基本特征(如数据 库、表、视图、存储过程、自定义函数等),现已经实现了默认的对象实例(PlugInInterface/Entities目录中)。可根据数据库异同, 从默认的对象实例继承重写相关属性和方法。

点击查看原图

插件开发:

    1.数据访问插件。
        实现IDataAccess接口创建数据访问插件。有关IDataAccess接口详细介绍,请查看IDataAccess类注释。

    2.生成SQL插件。
        实现IGenSQL接口创建生成SQL插件。有关IGenSQL接口详细介绍,请查看IGenSQL类注释。

    3.生成代码插件。
        实现IGenSymLanguage接口创建生成代码插件。有关IGenSymLanguage接口详细介绍,请查看IGenSymLanguage类注释。

    4.数据库实体对象运用。
        数据库实体对象描述数据库对象的基本特征,所以在开发插件前,请详细了解实体对象及实体之间的关系,才能方便的开发相关插件。         

    5.插件开发与解决方案。
        .相关工程采用C#,VS2008,.net 3.5开发,请配置相关开发环境先。
        .打开VS2008,创建一个空白的解决方案。
        .添加现有项目Common和PlugInInterface加入解决方案中,在项目PlugInInterface中添加Common的引用(点击下载插件项目源代码)。
        .创建一个新的项目,作为开发插件之用(如项目名称为PlugIns2),添加项目Common和PlugInInterface的引用,编译通过即意味着可以开发插件了。
        .开发相关插件,请先查看相关接口详细说明及相关文档资料,特别强调一定要设置新插件的自定义属性PluginInfo的GUID号,点此查看。
        .项目PlugIns仅用作开发插件的示例参考,开发不同类型的插件,请参考PlugIns中相关的插件示例。
        .插件开发完成且发布成功后,需要安装插件并重新创建或修改某一配置方案。
        .如开发过程遇到麻烦,可直接联系本人

其它说明:

        .本着开放与分享的精神,建议与他人共享你的开发成果,惠已以及他人,唯有如此,才能形成一套完整的插件体系。
        .以下为目前计划将要开发的插件(打√者为已经实现的插件):

        数据查询插件系列:
        SqlServer 2000(√),SqlServer 2005(√),SqlServer 2008(√)
        MySql 5.1(√)
        Access
        SqlLite(开发中..)
        Oracle
        DB2
        其它数据库…

        生成SQL脚本插件:
        SqlServer 2000(√),SqlServer 2005(√),SqlServer 2008(√)
        MySql 5.1(√)
        Oracle
        DB2
        其它数据库…

        生成程序代码插件:
        PetShop三层架构(√)
        其它架构代码…

相关下载:

[FCKEditor]FCKeditor2.2中行间距过大

mikel阅读(927)

今天下午在遇到了一个页面行间距过大的问题,解决过程有点曲折,现把过程记下
页面内容为动态抓取,编辑器使用的是FCK
首先自然是想到了,FCK的回车换行为P的问题,找到了FCK的配置文件:fckconfig.js

找到以下字段:
FCKConfig.EnterMode = 'p' ;  
FCKConfig.ShiftEnterMode = 'br' ;
表示当使用回车换行时,默认使用p断行(使用shift+回车为br 断行)
改为如下方式:
FCKConfig.EnterMode = 'br' ;      
FCKConfig.ShiftEnterMode = 'p' ;
以为大功告成,甚至都没测试,就告诉别人已经ok,正准备吹嘘之际,同事告知问题依旧,有点傻眼
进入数据库,发现新存进去的内容确实已经变成了br 断行,可为什么还会有问题呢
打开页面,浏览页面源文件,发现每个断行都使用了两个br
不禁奇怪,于是拿来其页面模板一看,笑了
原来使用的是smarty,而为了使内容不至于撑破表格,给长内容增加了nl2br格式,于是就产生了上述问题
删除nl2br 问题解决
可是又带来了新问题:当自己手动疯狂输入不断行时,会出现撑破表格,致使整个页面布局变乱的问题,解决方案晚上再发:》
有时候经常会遇到文字太长表格被撑破的状况
如果是自己输入的话,还可以自己来控制每行长度,但对于有些显示留言的地方,如果不做处理可能就有些捣乱的客人故意输入长文字来撑破表格了
一种方法当然是设置输入框每行长度,让其到了长度自动换行了,但此时如果捣乱客人故意输入不段行的连续的字母就不行了

另外一种比较好的解决办法是在表格中加入:style="word-break:break-all;word-wrap:break-word",这样即便是连续的英文字母也不得不乖乖老实呆在表格里啦:)