針對查詢「ckfinder」依關聯性排序顯示文章。依日期排序 顯示所有文章
針對查詢「ckfinder」依關聯性排序顯示文章。依日期排序 顯示所有文章

2020年9月15日 星期二

[研究] CKSource.CKFinder.Connector.Sample 3.3.0-rc5 試用 (NuGet)

[研究] CKSource.CKFinder.Connector.Sample 3.3.0-rc5 試用 (NuGet)

2020-09-15

CKSource.CKFinder 目前最新到 3.5.1.1,CKSource.CKFinder.Connector.Sample 最新只到 3.3.0-rc5。

參考

CKSource.CKFinder.Connector.Sample 3.3.0-rc5

https://packages.nuget.org/packages/CKSource.CKFinder.Connector.Sample/3.3.0-rc5

使用下面指令安裝

Install-Package CKSource.CKFinder.Connector.Sample -Version 3.3.0-rc5





可以正常執行。

********************************************************************************
使用 NuGet 把所有元件升級到最新,CKFinder 會被升級到 3.5.1.1版本。
點選 full-page-open.html,按下 F5執行,會出現錯誤。
顯示 3.3.0-rc5 和 3.5.1.1 版可能不相容。

CKSource.CKFinder.Connector.Core.Exceptions.InvalidConfigException: 'Configuration error: 'type' 屬性未宣告。'

CKSource.CKFinder.Connector.Core.Exceptions.InvalidConfigException

  HResult=0x80131500

  Message=Configuration error: 'type' 屬性未宣告。

  Source=<無法評估例外狀況來源>

  StackTrace: 

<無法評估例外狀況堆疊追蹤>

內部例外狀況 1:

XmlSchemaValidationException: 'type' 屬性未宣告。

********************************************************************************

參考這裡

https://ckeditor.com/docs/ckfinder/ckfinder3-net/configuration_by_code.html

修改 Startup.cs 檔案內容如下:

[assembly: Microsoft.Owin.OwinStartup(typeof(WebApplication2.Startup))]

namespace WebApplication2
{
    using System.Configuration;

    using CKSource.CKFinder.Connector.Config;
    using CKSource.CKFinder.Connector.Core.Builders;
    using CKSource.CKFinder.Connector.Core.Logs;
    using CKSource.CKFinder.Connector.Host.Owin;
    using CKSource.CKFinder.Connector.Logs.NLog;
    using CKSource.CKFinder.Connector.KeyValue.EntityFramework;
    using CKSource.FileSystem.Dropbox;
    using CKSource.FileSystem.Local;

    using Microsoft.Owin.Security;
    using Microsoft.Owin.Security.Cookies;

    using Owin;
    using CKSource.CKFinder.Connector.Core.Acl;
    using CKSource.CKFinder.Connector.Core;
    using System.Collections.Generic;
    using CKSource.CKFinder.Connector.Core.Authentication;
    using System.Threading.Tasks;
    using System.Threading;

    public class Startup
    {
        //public void Configuration(IAppBuilder builder)
        //{
        //    LoggerManager.LoggerAdapterFactory = new NLogLoggerAdapterFactory();

        //    RegisterFileSystems();

        //    builder.UseCookieAuthentication(new CookieAuthenticationOptions
        //    {
        //        AuthenticationType = "ApplicationCookie",
        //        AuthenticationMode = AuthenticationMode.Active
        //    });

        //    var route = ConfigurationManager.AppSettings["ckfinderRoute"];
        //    builder.Map(route, SetupConnector);
        //}

        //private static void RegisterFileSystems()
        //{
        //    FileSystemFactory.RegisterFileSystem<LocalStorage>();
        //    FileSystemFactory.RegisterFileSystem<DropboxStorage>();
        //}

        //private static void SetupConnector(IAppBuilder builder)
        //{
        //    var keyValueStoreProvider = new EntityFrameworkKeyValueStoreProvider("CacheConnectionString");

        //    var allowedRoleMatcherTemplate = ConfigurationManager.AppSettings["ckfinderAllowedRole"];
        //    var authenticator = new RoleBasedAuthenticator(allowedRoleMatcherTemplate);

        //    var connectorFactory = new OwinConnectorFactory();
        //    var connectorBuilder = new ConnectorBuilder();
        //    var connector = connectorBuilder
        //        .LoadConfig()
        //        .SetAuthenticator(authenticator)
        //        .SetRequestConfiguration(
        //            (request, config) =>
        //            {
        //                config.LoadConfig();
        //                config.SetKeyValueStoreProvider(keyValueStoreProvider);
        //            })
        //        .Build(connectorFactory);

        //    builder.UseConnector(connector);
        //}

        public ConnectorBuilder ConfigureConnector()
        {
            var connectorBuilder = new ConnectorBuilder();
            connectorBuilder
                .SetRequestConfiguration(
                    (request, config) =>
                    {
                        config.AddProxyBackend("local", new LocalStorage(@"MyFiles"));
                        config.AddResourceType("Files", resourceBuilder => resourceBuilder.SetBackend("local", "files"));
                        config.AddAclRule(new AclRule(
                            new StringMatcher("*"), new StringMatcher("/"), new StringMatcher("*"),
                            new Dictionary<Permission, PermissionType>
                            {
                        { Permission.FolderView, PermissionType.Allow },
                        { Permission.FolderCreate, PermissionType.Allow },
                        { Permission.FolderRename, PermissionType.Allow },
                        { Permission.FolderDelete, PermissionType.Allow },

                        { Permission.FileView, PermissionType.Allow },
                        { Permission.FileCreate, PermissionType.Allow },
                        { Permission.FileRename, PermissionType.Allow },
                        { Permission.FileDelete, PermissionType.Allow },

                        { Permission.ImageResize, PermissionType.Allow },
                        { Permission.ImageResizeCustom, PermissionType.Allow }
                            }));
                    })
                .SetAuthenticator(new MyAuthenticator());

            return connectorBuilder;
        }
        public class MyAuthenticator : IAuthenticator
        {
            public Task<IUser> AuthenticateAsync(ICommandRequest commandRequest, CancellationToken cancellationToken)
            {
                var user = new User(true, null);
                return Task.FromResult((IUser)user);
            }
        }
        public void Configuration(IAppBuilder appBuilder)
        {
            var connectorBuilder = ConfigureConnector();
            var connector = connectorBuilder.Build(new OwinConnectorFactory());
            appBuilder.Map("/CKFinder/connector", builder => builder.UseConnector(connector));
        }
    }
}


執行結果如下


packages.config 
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Autofac" version="5.2.0" targetFramework="net472" />
  <package id="CKSource.CKFinder" version="3.5.1.1" targetFramework="net472" />
  <package id="CKSource.CKFinder.Connector.Config" version="3.5.1.1" targetFramework="net472" />
  <package id="CKSource.CKFinder.Connector.Core" version="3.5.1.1" targetFramework="net472" />
  <package id="CKSource.CKFinder.Connector.Host.Owin" version="3.5.1.1" targetFramework="net472" />
  <package id="CKSource.CKFinder.Connector.KeyValue.EntityFramework" version="3.5.1.1" targetFramework="net472" />
  <package id="CKSource.CKFinder.Connector.Logs.NLog" version="3.5.1.1" targetFramework="net472" />
  <package id="CKSource.CKFinder.Connector.Sample" version="3.3.0-rc5" targetFramework="net472" developmentDependency="true" />
  <package id="CKSource.FileSystem" version="1.1.2" targetFramework="net472" />
  <package id="CKSource.FileSystem.Dropbox" version="1.1.2" targetFramework="net472" />
  <package id="CKSource.FileSystem.Local" version="1.1.2" targetFramework="net472" />
  <package id="Dropbox.Api" version="3.1.1" targetFramework="net472" />
  <package id="EntityFramework" version="6.1.3" targetFramework="net472" />
  <package id="EntityFramework.SqlServerCompact" version="6.1.3" targetFramework="net472" />
  <package id="ImageProcessor" version="2.8.0" targetFramework="net472" />
  <package id="Microsoft.Bcl" version="1.1.10" targetFramework="net472" />
  <package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net472" />
  <package id="Microsoft.Bcl.AsyncInterfaces" version="1.1.0" targetFramework="net472" />
  <package id="Microsoft.Bcl.Build" version="1.0.14" targetFramework="net472" />
  <package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net472" />
  <package id="Microsoft.Net.Http" version="2.2.29" targetFramework="net472" />
  <package id="Microsoft.Owin" version="3.0.1" targetFramework="net472" />
  <package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net472" />
  <package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net472" />
  <package id="Microsoft.Owin.Security.Cookies" version="3.0.1" targetFramework="net472" />
  <package id="Microsoft.SqlServer.Compact" version="4.0.8876.1" targetFramework="net472" />
  <package id="Newtonsoft.Json" version="8.0.3" targetFramework="net472" />
  <package id="NLog" version="4.3.2" targetFramework="net472" />
  <package id="Owin" version="1.0" targetFramework="net472" />
  <package id="Pri.LongPath" version="2.0.40" targetFramework="net472" />
  <package id="RestSharp" version="105.2.3" targetFramework="net472" />
  <package id="System.Net.Http" version="4.0.0" targetFramework="net472" />
  <package id="System.Net.Http.Formatting.Extension" version="5.2.3.0" targetFramework="net472" />
  <package id="System.Runtime.CompilerServices.Unsafe" version="4.5.2" targetFramework="net472" />
  <package id="System.Threading.Tasks.Extensions" version="4.5.2" targetFramework="net472" />
  <package id="System.ValueTuple" version="4.5.0" targetFramework="net472" />
</packages>

(完)

2020年9月17日 星期四

[研究][ASP.NET][WebForm] CKFinder 3.5.1.1 + CKFinder.Connector.Sample 3.3.0-rc5 + ckeditor 4.15.0 試用

[研究][ASP.NET][WebForm] CKFinder 3.5.1.1 + CKFinder.Connector.Sample 3.3.0-rc5 + ckeditor 4.15.0 試用

2020-09-17

續這篇

[研究] CKSource.CKFinder 3.5.1.1試用 (NuGet 安裝)

http://shaurong.blogspot.com/2020/09/cksourceckfinder-3511-nuget.html

NuGet 安裝 ckeditor full 4.15.0


專案添加 Default.aspx

Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <script src="Scripts/ckeditor/ckeditor.js"></script>
    <script src="CKFinderScripts/ckfinder.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Height="200px" Width="200px"></asp:TextBox><br />
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" Style="height: 21px" /><br />
            <br />
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            <%--操作 TextBox1 的 JavaScript 必須寫在該 Id 物件之下,不能寫 <head></head>區域--%>
            <script type="text/javascript">
                // https://ckeditor.com/docs/ckfinder/ckfinder3-net/integration.html#integration_embedding
                //var editor = CKEDITOR.replace('TextBox1');
                // 參考 https://ckeditor.com/docs/ckfinder/ckfinder3/#!/guide/dev_ckeditor
                var editor = CKEDITOR.replace('TextBox1',
                    {
                        // 參考  https://ckeditor.com/docs/ckfinder/ckfinder3-net/integration.html
                        filebrowserBrowseUrl: '/CKFinderScripts/ckfinder.html',
                        filebrowserImageBrowseUrl: '/CKFinderScripts/ckfinder.html?type=Images',
                        // 下面失敗,待研究
                        //filebrowserUploadUrl: '/CKFinderScripts/connector?command=QuickUpload&type=Files',
                        //filebrowserImageUploadUrl: '/CKFinderScripts/connector?command=QuickUpload&type=Images'
                        // 下面失敗,待研究
                        filebrowserUploadUrl: '/CKFinderScripts/connector?command=QuickUpload&type=Files&currentFolder=/userfiles/',
                        filebrowserImageUploadUrl: '/CKFinderScripts/connector?command=QuickUpload&type=Images&currentFolder=/userfiles/'
                    });
                CKFinder.setupCKEditor(editor);
            </script>
        </div>
    </form>
</body>
</html>


Default.aspx.cs
using System;

namespace WebApplication1
{
    public partial class Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void Button1_Click(object sender, EventArgs e)

        {

        }
    }
}

執行 Default.aspx








部分功能正常可用了,部分待研究。

(完)

相關

[研究][ASP.NET][WebForm] CKFinder 3.5.1.1 + CKFinder.Connector.Sample 3.3.0-rc5 + ckeditor 4.15.0 試用
https://shaurong.blogspot.com/2020/09/aspnetwebform-ckfinder-3511.html

[研究] CKSource.CKFinder 3.5.1.1試用 (NuGet 安裝)
https://shaurong.blogspot.com/2020/09/cksourceckfinder-3511-nuget.html

[研究] CKSource.CKFinder.Connector.Sample 3.3.0-rc5 試用 (NuGet)
https://shaurong.blogspot.com/2020/09/cksourceckfinderconnectorsample-330-rc5.html

[研究][ASP.NET][WebForm]CKFinder 3.5.11 試用(Zip安裝)(二)
https://shaurong.blogspot.com/2020/09/aspnetwebformckfinder-3511-zip_3.html

[研究][ASP.NET][WebForm]CKFinder 3.5.11 試用(Zip安裝)
https://shaurong.blogspot.com/2020/09/aspnetwebformckfinder-3511-zip.html

[研究][ASP.NET][WebForm] CKSource.CKFinder.Connector.Config 3.5.11 安裝 (NuGet安裝)
https://shaurong.blogspot.com/2020/09/aspnetwebform-cksourceckfinderconnector.html

2018年6月7日 星期四

[研究][ASP.NET][JavaScript] ckeditor-full v4.9.2 WYSIWYG HTML editor 試用(NuGet安裝)

[研究][ASP.NET][JavaScript] ckeditor-full v4.9.2 WYSIWYG HTML editor 試用(NuGet安裝)

2018-06-07

CKEditor 是很有名的 Web-based Word-Like 套件、WYSIWYG 網頁內容編輯器。
官方網站
https://ckeditor.com/


(下圖) 官方目前主要是 v4 和 v5











參考

Adding CKEditor to Your Page
http://docs.ckeditor.com/#!/guide/dev_installation




<textarea> 是 HTML 語法,用 ASP.NET 元件方法如下:
<asp:TextBox ID="TextBox1″ runat="server" TextMode="MultiLine" Height="200px" Width="600px"></asp:TextBox>

因為輸入內容包含 HTML Tag,可能會因為  ASP.NET 安全機制被攔截或拒絕,可在該 網頁做修改 (上面範例是 Default.aspx ),增加 ValidateRequest="False"
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"  ValidateRequest="False"   %>

在送出的按鈕,要對欄位內容作編碼:
protected void Button1_Click(object sender, EventArgs e)
{
    Label1.Text = HttpUtility.HtmlEncode(TextBox1.Text);
}

完整

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CKEditorImageUploadTest.Default"  ValidateRequest="False"  %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="Scripts/ckeditor/ckeditor.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Height="200px" Width="200px"></asp:TextBox><br />
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><br />
            <br />
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
            <script type="text/javascript">
                CKEDITOR.replace('TextBox1');
            </script>

        </div>
    </form>
</body>
</html>



或改用 CssClass

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CKEditorImageUploadTest.Default"  ValidateRequest="False"  %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <script src="Scripts/ckeditor/ckeditor.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:TextBox ID="TextBox1" CssClass="ckeditor" runat="server" TextMode="MultiLine" Height="200px" Width="200px"></asp:TextBox><br />
            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /><br />
            <br />
            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        </div>
    </form>
</body>
</html>



(下圖) 原始的 CKEditor 的「圖像」按鈕,只能設定要顯示的圖片 URL,沒有上傳功能。







如果要可以上傳圖片,可搭配 CKFinder,有空再說。

網路上有很多篇 CKFinder 是 2.x 的,和 CKFinder 3.x 用法差異很大,可能要直接看官方文件。
而且 CKFinder 是付費的 Add-ons,不是免費的。
https://ckeditor.com/pricing/

CKFinder 3 ASP.NET Connector: Quick Start Guide - Installation with NuGet Packages
https://ckeditor.com/docs/ckfinder/ckfinder3-net/quickstart.html#quickstart_installation_nuget
( 感覺用起來很累,太複雜了 )

CKFinder Demo
https://ckeditor.com/ckfinder/demo/

CKFinder 3 .Net 版本安裝失敗小筆記 – 要改的地方太多了,那就改天吧

CKFinder 3 ASP.NET Connector: Quick Start Guide

Website Integration - CKFinder 3 Documentation

(完)


相關

[研究] NuGet 安裝的 CKEditor 版本比較
http://shaurong.blogspot.com/2018/06/nuget-ckeditor.html

[研究][ASP.NET][JavaScript] ckeditor-full v4.9.2 試用(NuGet安裝)
http://shaurong.blogspot.com/2018/06/aspnetjavascript-ckeditor-full-v492.html

[研究][JavaScript] CKeditor 4.9.1 與 Fortify SCA v17.20
http://shaurong.blogspot.com/2018/04/javascript-ckeditor-491-fortify-sca.html

[研究][ASP.NET][JavaScript] ckeditor v3.6.4試用 (NuGet 安裝)
http://shaurong.blogspot.com/2018/06/aspnetjavascript-ckeditor-v364-nuget.html

[研究][ASP.NET][JavaScript] CkeditorForASP.NET v3.6.4試用 (NuGet安裝)
http://shaurong.blogspot.com/2018/06/aspnetjavascript-ckeditorforaspnet-v364.html

[研究][ASP.NET] CKEditor.NET 1.0.0 試用 (NuGet安裝)
http://shaurong.blogspot.com/2018/06/aspnet-ckeditornet-100-nuget.html

[研究] [C#] [ASP.NET] ckeditor-full 4.6.1 安裝 (NuGet) 與使用
http://shaurong.blogspot.com/2017/01/c-aspnet-ckeditor-full-461-nuget.html


2020年9月2日 星期三

[研究][ASP.NET][WebForm] CKSource.CKFinder.Connector.Config 3.5.11 安裝 (NuGet安裝)

[研究][ASP.NET][WebForm] CKSource.CKFinder.Connector.Config 3.5.11 安裝 (NuGet安裝)

2020-09-02

注意,CKFinder是付費套件,免費版會不定時跳出 Demo Version 訊息。





Web.Config 安裝前

********************************************************************************

<?xml version="1.0" encoding="utf-8"?>

<!--

  如需如何設定 ASP.NET 應用程式的詳細資訊,請前往

  https://go.microsoft.com/fwlink/?LinkId=169433

  -->

<configuration>

  <system.web>

    <compilation debug="true" targetFramework="4.7.2"/>

    <httpRuntime targetFramework="4.7.2"/>

  </system.web>

  <system.codedom>

    <compilers>

      <compiler language="c#;cs;csharp" extension=".cs"

        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

        warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701"/>

      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb"

        type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"

        warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+"/>

    </compilers>

  </system.codedom>

</configuration>

********************************************************************************

Web.Config 安裝後如下

********************************************************************************

<?xml version="1.0" encoding="utf-8"?>

<!--

  如需如何設定 ASP.NET 應用程式的詳細資訊,請前往

  https://go.microsoft.com/fwlink/?LinkId=169433

  -->

<configuration>

  <configSections>

    <section name="ckfinder" type="CKSource.CKFinder.Connector.Config.ConfigSectionHandler, CKSource.CKFinder.Connector.Config" allowLocation="true" allowDefinition="Everywhere" />

  </configSections>

  <system.web>

    <compilation debug="true" targetFramework="4.7.2" />

    <httpRuntime targetFramework="4.7.2" />

  </system.web>

  <system.codedom>

    <compilers>

      <compiler language="c#;cs;csharp" extension=".cs" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:1659;1699;1701" />

      <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" type="Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=2.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" warningLevel="4" compilerOptions="/langversion:default /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+" />

    </compilers>

  </system.codedom>

  <ckfinder overwriteOnUpload="false" checkDoubleExtension="true" disallowUnsafeCharacters="false" secureImageUploads="true" checkSizeAfterScaling="true" xmlns="https://cksource.com/ckfinder-net/schema/CKFinderConnector.xsd">

    <license name="" key="" />

    <images maxWidth="1600" maxHeight="1200" quality="80">

      <sizes>

        <size name="small" width="480" height="320" quality="80" />

        <size name="medium" width="600" height="480" quality="80" />

        <size name="large" width="800" height="600" quality="80" />

      </sizes>

      <threshold pixels="80" percent="10" />

    </images>

    <thumbnails folder="thumbs" backend="CKFinderPrivate">

      <sizes>

        <size width="150" height="150" quality="80" />

        <size width="300" height="300" quality="80" />

        <size width="500" height="500" quality="80" />

      </sizes>

    </thumbnails>

    <backends>

      <!--

        This is special file system for private CKFinder data, it shouldn't be used for normal files.

        It shouldn't be modified unless CKFinder is hosted without access to the local file system.

        -->

      <backend name="CKFinderPrivate" adapter="local">

        <option name="root" value="App_Data" />

      </backend>

      <backend name="default" adapter="local">

        <option name="root" value="userfiles" />

        <option name="baseUrl" value="/ckfinder/userfiles/" />

      </backend>

    </backends>

    <resourceTypes>

      <resourceType name="Files" folder="files" allowedExtensions="7z,aiff,asf,avi,bmp,csv,doc,docx,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pptx,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xlsx,zip" backend="default" />

      <resourceType name="Images" folder="images" allowedExtensions="bmp,gif,jpeg,jpg,png" backend="default" />

    </resourceTypes>

    <accessControl>

      <role name="*" resourceType="*" folder="*" folderView="allow" folderCreate="allow" folderRename="allow" folderDelete="allow" fileView="allow" fileUpload="allow" fileRename="allow" fileDelete="allow" imageResize="allow" imageResizeCustom="allow" />

    </accessControl>

    <htmlExtensions>

      <extension name="html" />

      <extension name="htm" />

      <extension name="xml" />

      <extension name="js" />

    </htmlExtensions>

    <hideFolders>

      <folder name=".*" />

      <folder name="CVS" />

      <folder name="__thumbs" />

    </hideFolders>

    <hideFiles>

      <file name=".*" />

    </hideFiles>

    <plugins folder="plugins">

      <!--

      <plugin name="PluginName" />

      -->

    </plugins>

  </ckfinder>

  <runtime>

    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

      <dependentAssembly>

        <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />

        <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />

      </dependentAssembly>

    </assemblyBinding>

  </runtime>

</configuration>

********************************************************************************
本來以為會安裝甚麼 JavaScript 或 CSS,實際上沒有,只是變更 Web.Config 內容。
NuGet 安裝 CKSource.CKFinder.Connector.Config 時,也不會安裝 CKSource.CKFinder,要自己另外安裝。

(完)


[研究][ASP.NET][JavaScript] ckeditor-full v4.9.2 試用(NuGet安裝)

http://shaurong.blogspot.com/2018/06/aspnetjavascript-ckeditor-full-v492.html


2020年9月3日 星期四

[研究][ASP.NET][WebForm]CKFinder 3.5.11 + CKEditor 試用(Zip安裝)(二)

[研究][ASP.NET][WebForm]CKFinder 3.5.11 + CKEditor 試用(Zip安裝)(二)

2020-09-03

注意,CKFinder是付費套件,免費版會不定時跳出 Demo Version 訊息。

續這篇

[研究][ASP.NET][WebForm]CKFinder 3.5.11 試用(Zip安裝)

https://shaurong.blogspot.com/2020/09/aspnetwebformckfinder-3511-zip.html








Default.aspx 內容如下

********************************************************************************

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="CKSource.CKFinder.Connector.WebApp.Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

    <title></title>

    <script src="Scripts/ckeditor/ckeditor.js"></script>

    <script src="CKFinderScripts/ckfinder.js"></script>

</head>

<body>

    <form id="form1" runat="server">

        <div>

            <asp:TextBox ID="TextBox1" runat="server" TextMode="MultiLine" Height="200px" Width="200px"></asp:TextBox><br />

            <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" style="height: 21px" /><br />

            <br />

            <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

            <%--操作 TextBox1 的 JavaScript 必須寫在該 Id 物件之下,不能寫 <head></head>區域--%>

            <script type="text/javascript">

                // https://ckeditor.com/docs/ckfinder/ckfinder3-net/integration.html#integration_embedding

                var editor = CKEDITOR.replace('TextBox1');

                CKFinder.setupCKEditor(editor);

            </script>

        </div>

    </form>

</body>

</html>

********************************************************************************
Default.aspx.cs 內容如下

********************************************************************************

using System;

namespace CKSource.CKFinder.Connector.WebApp

{

    public partial class Default : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

        }

        protected void Button1_Click(object sender, EventArgs e)

        {

        }

    }

}

********************************************************************************

********************************************************************************

var editor = CKEDITOR.replace('TextBox1');

可依需求調整類似如下:

var editor = CKEDITOR.replace('TextBox1',

{

    filebrowserBrowseUrl: '/CKFinderScripts/ckfinder.html',

    filebrowserImageBrowseUrl: '/CKFinderScripts/ckfinder.html?type=Images',

    filebrowserUploadUrl: '/CKFinderScripts/connector?command=QuickUpload&type=Files',

    filebrowserImageUploadUrl: '/CKFinderScripts/connector?command=QuickUpload&type=Images'

});

若是在 ContentPlaceHolder 中,改要成類似如下:(依實際情況而變動)

var editor = CKEDITOR.replace('ContentPlaceHolder1_TextBox_WinnersContent');

********************************************************************************


(完)


2020年9月17日 星期四

[研究] CKSource.CKFinder 3.5.1.1試用 (NuGet 安裝)

[研究] CKSource.CKFinder 3.5.1.1試用 (NuGet)

2020-09-17





********************************************************************************
解決方法: 

使用下面指令安裝

Install-Package CKSource.CKFinder.Connector.Sample -Version 3.3.0-rc5




再次點選 full-page-open.html
按下 F5 執行


執行成功,測試上傳成功。

********************************************************************************

和下面這篇相比

[研究] CKSource.CKFinder.Connector.Sample 3.3.0-rc5 試用 (NuGet)

http://shaurong.blogspot.com/2020/09/cksourceckfinderconnectorsample-330-rc5.html

NuGet 先安裝 CKSource.CKFinder.Connector.Sample 3.3.0-rc5,再安裝 CKSource.CKFinder 3.5.1.1,Startup.cs 要修改才能正常運作。 

NuGet 先安裝 CKSource.CKFinder 3.5.1.1,再安裝 CKSource.CKFinder.Connector.Sample 3.3.0-rc5,Startup.cs 不用修改就能正常運作。但較不建議,因為未來若升級到 CKEditor,仍˙會碰到 Startup.cs 要修改情況,不太可能每次升級 CKEditor 後,又再安裝一次 3.3.0-rc5 版。

希望CKFinder能再改善和 CKEditor程式搭配和文件說明的各種問題。

(完)