microky 最近在学习Flarum,现在可以顺利地完成Flarum的安装,对于安装中的各种问题也能很好地解决 对于Flarum的各种流行扩展,也已经大致掌握了他们特性与用法 对于不在composer库中的扩展,也已经能够顺利的进行本地安装 现在已经进入到了Flarum扩展的本地开发阶段 对于Flarum扩展的本地开发,现使用的是create-flarum-extension工具生成空白扩展,然后在空白扩展上进行完善,但因为刚入门,也读过一些官方文档,但官方文档貌似对扩展开发的不够详尽,也可能是我没通读的缘故 不知道站内有谁有Flarum扩展的一些比较详尽的教程没? 对于Flarum扩展的几点疑问: 我参考了几个项目,他们将控制器与模型等目录集中放在src目录中,这是Flarum的官方要求吗? 对于src中的 Controller Event Listeners Query 等目录,是通过什么命令生成的?应该不是手动创建的吧?
火车啦啦 microky 大哥,如果写扩展的话,能不能先从TMDB入手😂。求一个能在发帖的时候,通过短代码加上TMDB的ID的方式,插入TMDB里面的电影或者剧集的相关数据。电影剧集名称、海报啥的。 扩展的后台设置,可以设置TMDB的API KEY,选择需要插入哪些数据,选择返回哪种语言的数据…… 哈哈,大佬,加油
microky 小鱼飘飘 Flarum-cli 已经安装了,但是不知道为什么,安装失败, 报错: /usr/local/lib/node_modules/@flarum/cli/node_modules/@oclif/core/lib/command.js:41 delete this.globalFlags?.json; ^ SyntaxError: Unexpected token ‘.’ at wrapSafe (internal/modules/cjs/loader.js:915:16) at Module.compile (internal/modules/cjs/loader.js:963:27) at Object.Module.extensions..js (internal/modules/cjs/loader.js:1027:10) at Module.load (internal/modules/cjs/loader.js:863:32) at Function.Module.load (internal/modules/cjs/loader.js:708:14) at Module.require (internal/modules/cjs/loader.js:887:19) at require (internal/modules/cjs/helpers.js:85:18) at Object.<anonymous> (/usr/local/lib/node_modules/@flarum/cli/node_modules/@oclif/core/lib/index.js:6:19) at Module.compile (internal/modules/cjs/loader.js:999:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10) 我就奇了怪了,按照官方的命令安装,为什么还会报错?
小鱼飘飘 microky 看不懂文档就别看了,去抄别人的代码,硬啃文档只会折磨自己。 推荐先找一个和自己需求形式比较接近的开源插件,然后直接看他的代码怎么实现的,再对着里面看不懂的部分去查对应的文档,实在还不懂再来论坛上问。
microky 小鱼飘飘 看过一个,对比了一下,像控制器、模型、队列、迁移那些与Laravel一致的,我看个文件名就知道他们是干什么的 至于路由,我知道是注册在extend.php中 能指点一下,flarum-cli 是否有命令能够一键生成页面(路由+模板)吗? 如果有,能不能告知一下是什么命令? 谢谢!
小鱼飘飘 microky 你还是没完全听懂我的意思。比如你看有些拓展会提供一个单独的页面,你去看一看哪些是怎么实现的就可以了。 至于cli的话,页面(Page)本质上是一种特殊的组件(Component),直接用创建前端组件的命令就可以了 flarum-cli make frontend component [PATH]
microky 小鱼飘飘 你还是没完全听懂我的意思。比如你看有些拓展会提供一个单独的页面,你去看一看哪些是怎么实现的就可以了。 至于cli的话,页面(Page)本质上是一种特殊的组件(Component),直接用创建前端组件的命令就可以了 对于这个问题,我看官方文档大概能有所理解,只是具体步骤不太清楚 比如,要创建一个/page/{id}的页面,我就不知道怎么做了,命令中的path又应该怎么设置呢? As explained in the Routes and Content documentation, we can use Mithril’s routing system to show different components for different routes. Mithril allows you to use any component you like, even a Modal or Alert, but we recommend sticking to component classes that inherit the Page component.
小鱼飘飘 microky 你确实应该去读读别人的代码。否则你就只能先完全学会 Mithril ,读完 flarum 的实现再开始这部分的开发了 不过实际上,直接读 flarum 的代码有时候也是可以的。 举个例子: app.routes['storePage'] = { path: '/store-page', component: StorePage, }; 然后调用app.route(‘storePage’)就可以拿到URL了。 建议在提问之前先看看这个问题有没有别的人已经解决了。
microky 小鱼飘飘 刚研究了一下官方文档,好像可以使用views的blade模板返回视图 官方的几个主要视图好像就是使用blade模板返回的 我觉得吧,作为一个主要从事后端的开发者,能够使用blade模板开发最好了