• 瀏覽: 5,023
  • 回覆: 24
[隱藏]
商用軟件有些 design architecture我覺得 好神奇,比如 CMS, Workflow 架構,最近學習 下piranha cms core 的 source code, 有冇 高手解釋下 呢類 CMS 的設計架構,或者同其他 CMS 架構的分別


回覆 引用 TOP

熱賣及精選

回覆 引用 TOP

  有 doc
http://piranhacms.org/

 對比 orchard core cms, 食人魚簡單好多,
Orchard core cms 等左兩三年都未去到 stable release 



回覆 引用 TOP

毎日自言自語時間

CMS db 同 data db 可以用吾同 connection string 分開,亦即係吾同牌子db 一起用,幾好

Piranha CMS is a lightweight, unobtrusive
睇左啲source code, 覺呢句廣告都幾岩,跟本可以當做  asp.net core 嘅起手template, 再免費送你一個lightweight 嘅 cms



回覆 引用 TOP

[隱藏]
食人魚 用左Block editor , 好方便
估計今時今日大部分 cms 都用 block editor 去 edit html ,  
冇記錯Django cms 好似吾係



回覆 引用 TOP

吾明點解main banner 之類 叫做hero ?   究竟咩料?


回覆 引用 TOP

用 wordpress 啦。攪咁多野做乜。


小弟從事網頁設計,超過十年。只跟有意從事這行業/職人分享。
冇意從事這個行業/興趣/一時想有網站者,請俾錢搵人做,勿嘗試學,學識做最少3年,做得好要花上6年。
引用:
原帖由 tk24chan 於 2019-11-27 11:56 PM 發表

用 wordpress 啦。攪咁多野做乜。
主要想了解和學習 呢類 tools 係怎様 設計,好似 route, security, caching,module design ....
Wordpress 我吾識用 , 感覺太麻煩肋

[ 本帖最後由 form5 於 2019-11-28 07:18 AM 編輯 ]



回覆 引用 TOP

提示: 作者被禁止或刪除 內容自動屏蔽
[隱藏]
route is using asp.net core middleware pipeline


    public class PageMiddleware
      =>
        async Task Invoke(HttpContext context, IApi api, IApplicationService service)
           =>
              var response = await PageRouter.InvokeAsync(api, url, siteId);

                var page = await api.Pages.GetBySlugAsync<Models.PageInfo>(slug, siteId)
                        .ConfigureAwait(false);

                         =>  get route information

                            return new RouteResponse
                            {
                                PageId = page.Id,
                                Route = route,
                                QueryString = $"id={page.Id}&startpage={isStartPage.ToString().ToLower()}&piranha_handled=true",
                                IsPublished = page.Published.HasValue && page.Published.Value <= DateTime.Now,
                                CacheInfo = new HttpCacheInfo
                                {
                                    EntityTag = Utils.GenerateETag(page.Id.ToString(), lastModified),
                                    LastModified = lastModified
                                }

  



as a result, routing "/about"

 ends up with /page?id=
$"id={page.Id}&startpage={isStartPage.ToString().ToLower()}&piranha_handled=true"



引用:
原帖由 台風中心的救星 於 2019-11-28 08:55 AM 發表

https://youtu.be/F1eQk0ggy-U

咁改,👏
he'd be better to get a 3D printer



回覆 引用 TOP

提示: 作者被禁止或刪除 內容自動屏蔽
引用:
原帖由 form5 於 2019-11-28 10:10 PM 發表

route is using asp.net core middleware pipeline


    public class PageMiddleware
      =>
        async Task Invoke(Htt ...
PageMiddleware#invoke@params: (a)context, (b)api, (c)service
static context params:       context?->siteId
dynamic context params:     context?->url, service->slugId, api.Pages.GetBySlug(slugId)->page->page.id
api reference use:        PageRouter.InvokeAsync(api,url,siteId)-> response
cache tag:              api/page/service?->lastModified, page.id -> ETag


[ 本帖最後由 台風中心的救星 於 2019-11-29 01:22 PM 編輯 ]



引用:
原帖由 台風中心的救星 於 2019-11-29 01:14 PM 發表


PageMiddleware#invoke@params: (a)context, (b)api, (c)service
static context params:       context?->siteId
dynamic context params:     context?->url, service->slugId, api.Pages.GetBySlug(slugId)-> ...
may be, it is better to describe the page "route" in the a picture .

[ 本帖最後由 form5 於 2019-11-29 10:43 PM 編輯 ]



附件

code_trace_page_route2.png(397.31 KB)

2019-11-29 10:42 PM

code_trace_page_route2.png

回覆 引用 TOP

食人魚cms 究竟點樣做到headless ? 


回覆 引用 TOP

[隱藏]
截圖麻煩啦,可以產個次序圖/類圖慢慢睇同跟跟.


回覆 引用 TOP

伸延閱讀
提示:支持鍵盤翻頁左 右
[按此隱藏 Google 建議的相符內容]