appIcon

ThemeDemo

教你用插件替换指定视图

开发者
应用ID
SForum/ThemeDemo
版本数量
1

# 介绍

安装好可访问: - 域名/ThemeDemo - 域名/ThemeDemo/test

如果你想对SForum的默认主题进行自由diy或者重写,不需要修改主题文件,可以通过插件的形式替换掉原来的。

那么,这个插件就是辅助你快速入门,需要注意的是:只有SForum v2.7.1 开始才支持这些功能。

在开始开发之前,你要先了解 SForum视图功能的运行机制:https://www.runpod.cn/954.html

替换机制

SForum默认主题的命名空间是:App 视图在 /app/Themes/CodeFec/resources/views 目录下

下面的代码就是修改了默认主题视图的位置,将其替换成了 /app/Plugins/ThemeDemo/resources/replace/App

这里的 theme-replace 不要修改,是告诉SForum 你要写入一个主题替换配置

这里的 1 是配置权重,数字越大越优先执行,并且要具有唯一性,否则不会生效。

Itf()->add('theme-replace', 1, [
   'namespace' => 'App', // 命名空间
   'path' => plugin_path('ThemeDemo/resources/replace/App'), // 新的路径
]);

当你修改了视图位置之后,你就可以在 /app/Plugins/ThemeDemo/resources/replace/App 目录下创建视图文件了。

如果新的视图文件和默认主题的视图文件名相同,那么就会替换掉默认主题的视图。

如果新的视图文件和默认主题的视图文件名不同,那么就会新建此视图。

比如要替换掉默认主题的 index.blade.php 视图,那么就在 /app/Plugins/ThemeDemo/resources/replace/App 目录下创建 index.blade.php 文件,然后在里面写入自己的代码即可。

同理,如果要替换掉默认主题的 user/login.blade.php 视图,那么就在 /app/Plugins/ThemeDemo/resources/replace/App/user 目录下创建 login.blade.php 文件,然后在里面写入自己的代码即可。