diff --git a/app/admin/controller/Cms/Theme/ThemeController.php b/app/admin/controller/Cms/Theme/ThemeController.php index d22e5f7..5334058 100644 --- a/app/admin/controller/Cms/Theme/ThemeController.php +++ b/app/admin/controller/Cms/Theme/ThemeController.php @@ -7,6 +7,7 @@ namespace app\admin\controller\Cms\Theme; use app\admin\BaseController; use app\service\ThemeService; use think\facade\Request; +use app\model\Cms\TemplateSiteConfig; /** @@ -30,11 +31,15 @@ class ThemeController extends BaseController */ public function index() { - $tid = Request::get('tid', 0, 'int'); + $tid = $this->getTenantId(); $themes = $this->themeService->getThemeList(); $currentTheme = $this->themeService->getCurrentTheme($tid); + $theme_useing = TemplateSiteConfig::where('tid', $tid) + ->where('key', 'current_theme') + ->value('value'); + return json([ 'code' => 200, 'msg' => 'success', @@ -51,14 +56,13 @@ class ThemeController extends BaseController */ public function switch() { - // 从当前登录用户获取tid,而不是从前端参数 - $tid = $this->getTenantId(); + $tid = Request::post('tid', 0, 'int'); $themeKey = Request::post('theme_key', ''); if (empty($tid) || $tid == 0) { return json([ 'code' => 401, - 'msg' => '未获取到租户ID,请重新登录' + 'msg' => '未获取到租户ID,请先选择租户' ]); } diff --git a/app/index/controller/Index.php b/app/index/controller/Index.php index d5f0303..da279d2 100644 --- a/app/index/controller/Index.php +++ b/app/index/controller/Index.php @@ -74,6 +74,121 @@ class Index extends BaseController return view('index/index'); } + /** + * 通用页面渲染 + * 根据页面名称(如 about, blog, portfolio 等)渲染对应模板 + * @param string $page 页面名称 + * @return \think\response|\think\response\View + */ + public function page(string $page = 'index') + { + $request = $this->request ?? Request::instance(); + + // 获取租户ID + $tid = $request->tenantId ?? 0; + if ($tid == 0) { + $headerTid = $request->header('X-Tenant-Id'); + $tid = $headerTid ? (int) $headerTid : 0; + } + + if ($tid === 0) { + die('tenantId未获取到,请检查域名解析'); + } + + // 获取租户选择的模板 + $themeKey = 'default'; + if ($tid > 0) { + $config = TemplateSiteConfig::where('tid', $tid) + ->where('key', 'current_theme') + ->withoutField('delete_time') + ->find(); + $themeKey = $config['value'] ?? 'default'; + } + + // 模板路径 + $themeBasePath = root_path() . 'public' . DIRECTORY_SEPARATOR . 'themes' . DIRECTORY_SEPARATOR . $themeKey; + $themeUrlPath = '/themes/' . $themeKey . '/'; + + // 安全检查:只允许字母、数字、中划线 + $page = preg_replace('/[^a-zA-Z0-9\-]/', '', $page); + if (empty($page)) { + $page = 'index'; + } + + // 查找 PHP 模板(优先)或 HTML 模板 + $templateFile = $themeBasePath . DIRECTORY_SEPARATOR . $page . '.php'; + $templateHtmlFile = $themeBasePath . DIRECTORY_SEPARATOR . $page . '.html'; + + if (is_file($templateFile)) { + return $this->renderPhpTemplate($templateFile, $themeUrlPath); + } elseif (is_file($templateHtmlFile)) { + $content = file_get_contents($templateHtmlFile); + $content = $this->fixTemplateAssets($content, $themeUrlPath); + return response($content, 200, ['Content-Type' => 'text/html; charset=utf-8']); + } + + // 模板不存在 + return response('页面不存在', 404, ['Content-Type' => 'text/html; charset=utf-8']); + } + + /** + * 文章详情页 + * @param int $id 文章ID + * @return \think\response + */ + public function articleDetail(int $id = 0) + { + $request = $this->request ?? Request::instance(); + + // 获取租户ID + $tid = $request->tenantId ?? 0; + if ($tid == 0) { + $headerTid = $request->header('X-Tenant-Id'); + $tid = $headerTid ? (int) $headerTid : 0; + } + + if ($tid === 0) { + die('tenantId未获取到,请检查域名解析'); + } + + // 获取租户选择的模板 + $themeKey = 'default'; + if ($tid > 0) { + $config = TemplateSiteConfig::where('tid', $tid) + ->where('key', 'current_theme') + ->withoutField('delete_time') + ->find(); + $themeKey = $config['value'] ?? 'default'; + } + + // 模板路径 + $themeBasePath = root_path() . 'public' . DIRECTORY_SEPARATOR . 'themes' . DIRECTORY_SEPARATOR . $themeKey; + $themeUrlPath = '/themes/' . $themeKey . '/'; + + // 查找文章详情模板 + $templateFile = $themeBasePath . DIRECTORY_SEPARATOR . 'article_detail.php'; + $templateHtmlFile = $themeBasePath . DIRECTORY_SEPARATOR . 'article_detail.html'; + $blogDetailsFile = $themeBasePath . DIRECTORY_SEPARATOR . 'blog-details.php'; + $blogDetailsHtmlFile = $themeBasePath . DIRECTORY_SEPARATOR . 'blog-details.html'; + + // 优先使用 article_detail 模板 + if (is_file($templateFile)) { + return $this->renderPhpTemplate($templateFile, $themeUrlPath); + } elseif (is_file($templateHtmlFile)) { + $content = file_get_contents($templateHtmlFile); + $content = $this->fixTemplateAssets($content, $themeUrlPath); + return response($content, 200, ['Content-Type' => 'text/html; charset=utf-8']); + } elseif (is_file($blogDetailsFile)) { + return $this->renderPhpTemplate($blogDetailsFile, $themeUrlPath); + } elseif (is_file($blogDetailsHtmlFile)) { + $content = file_get_contents($blogDetailsHtmlFile); + $content = $this->fixTemplateAssets($content, $themeUrlPath); + return response($content, 200, ['Content-Type' => 'text/html; charset=utf-8']); + } + + return response('文章不存在', 404, ['Content-Type' => 'text/html; charset=utf-8']); + } + /** * 修复模板中的资源路径 * 将相对路径 (assets/, css/, js/, images/) 转换为绝对路径 (/themes/xxx/) diff --git a/app/index/route/app.php b/app/index/route/app.php index 35ad6a4..deb3285 100644 --- a/app/index/route/app.php +++ b/app/index/route/app.php @@ -5,6 +5,11 @@ use think\facade\Route; Route::get('/', 'app\index\controller\Index@index'); Route::get('index/index', 'app\index\controller\Index@index'); +// --- 模板通用页面路由 --- +Route::get('article_detail/:id', 'app\index\controller\Index@articleDetail'); +Route::get(':page', 'app\index\controller\Index@page') + ->pattern(['page' => 'about|blog|blog-details|contact|portfolio|portfolio-details|service-details|services|team|articles']); + // --- 模板初始化接口 --- Route::get('init', 'app\index\controller\Index@init'); diff --git a/app/service/ThemeService.php b/app/service/ThemeService.php index 5f18640..0fe8d23 100644 --- a/app/service/ThemeService.php +++ b/app/service/ThemeService.php @@ -7,7 +7,6 @@ namespace app\service; use think\facade\Db; use think\facade\Config; use app\model\Cms\TemplateSiteConfig; -use app\model\Cms\TemplateThemeData; /** * 模板服务类 @@ -120,19 +119,12 @@ class ThemeService * @param int $tid 租户ID * @return string */ - public function getCurrentTheme(int $tid = 0): string + public function getCurrentTheme(int $tid) { - try { - $where = [['key', '=', 'current_theme'], ['delete_time', '=', null]]; - if ($tid > 0) { - $where[] = ['tid', '=', $tid]; - } - $config = TemplateSiteConfig::where($where) - ->find(); - return $config['value'] ?? 'default'; - } catch (\Exception $e) { - return 'default'; - } + // 直接通过 tid 查询对应的 value + $value = TemplateSiteConfig::where('tid', $tid)->value('value'); + + return $value; } /** @@ -175,6 +167,7 @@ class ThemeService ]); } else { TemplateSiteConfig::insert([ + 'tid' => $tid, 'key' => 'current_theme', 'value' => $themeKey, 'create_time' => $now, @@ -199,17 +192,18 @@ class ThemeService $themeKey = $themeKey ?? $this->getCurrentTheme($tid); try { - $where = [['theme_key', '=', $themeKey], ['delete_time', '=', null]]; if ($tid > 0) { $where[] = ['tid', '=', $tid]; } - $themeData = TemplateThemeData::where($where) + $configData = TemplateSiteConfig::where($where) ->select() ->toArray(); $data = []; - foreach ($themeData as $item) { - $data[$item['field_key']] = $item['field_value']; + foreach ($configData as $item) { + // 去掉 field_ 前缀 + $fieldKey = substr($item['key'], 6); + $data[$fieldKey] = $item['value']; } return [ @@ -237,32 +231,32 @@ class ThemeService public function saveThemeField(int $tid, string $themeKey, string $fieldKey, $fieldValue): bool { try { + // 使用 TemplateSiteConfig 表,key 格式为 field_xxx + $configKey = 'field_' . $fieldKey; $where = [ - ['theme_key', '=', $themeKey], - ['field_key', '=', $fieldKey], + ['key', '=', $configKey], ['delete_time', '=', null] ]; if ($tid > 0) { $where[] = ['tid', '=', $tid]; } - $existing = TemplateThemeData::where($where) + $existing = TemplateSiteConfig::where($where) ->find(); $value = is_array($fieldValue) ? json_encode($fieldValue, JSON_UNESCAPED_UNICODE) : $fieldValue; $now = date('Y-m-d H:i:s'); if ($existing) { - TemplateThemeData::where('id', $existing['id']) + TemplateSiteConfig::where('id', $existing['id']) ->update([ - 'field_value' => $value, + 'value' => $value, 'update_time' => $now ]); } else { - TemplateThemeData::insert([ + TemplateSiteConfig::insert([ 'tid' => $tid, - 'theme_key' => $themeKey, - 'field_key' => $fieldKey, - 'field_value' => $value, + 'key' => $configKey, + 'value' => $value, 'create_time' => $now, 'update_time' => $now ]); diff --git a/public/themes/template3/about.html b/public/themes/template3/about.php similarity index 55% rename from public/themes/template3/about.html rename to public/themes/template3/about.php index ea8a19b..4b45e63 100644 --- a/public/themes/template3/about.html +++ b/public/themes/template3/about.php @@ -1,91 +1,18 @@ - - - - - - - - About - Nova Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - -
+ -
+
-

About

+

关于我们

@@ -98,7 +25,7 @@
- +
@@ -128,7 +55,7 @@
- +
@@ -205,7 +132,7 @@
- +
@@ -237,7 +164,7 @@
- +
- - - - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/themes/template3/blog-details.html b/public/themes/template3/blog-details.php similarity index 59% rename from public/themes/template3/blog-details.html rename to public/themes/template3/blog-details.php index 273c389..3191a90 100644 --- a/public/themes/template3/blog-details.html +++ b/public/themes/template3/blog-details.php @@ -1,91 +1,18 @@ - - - - - - - - Blog Details - Nova Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - -
+ -
+
-

Blog Details

+

博客详情

@@ -103,16 +30,16 @@
- +

Dolorum optio tempore voluptas dignissimos cumque fuga qui quibusdam quia

@@ -144,7 +71,7 @@ Quia et suscipit non sequi. Maxime sed odit. Beatae nesciunt nesciunt accusamus quia aut ratione aspernatur dolor. Sint harum eveniet dicta exercitationem minima. Exercitationem omnis asperiores natus aperiam dolor consequatur id ex sed. Quibusdam rerum dolores sint consequatur quidem ea. Beatae minima sunt libero soluta sapiente in rem assumenda. Et qui odit voluptatem. Cum quibusdam voluptatem voluptatem accusamus mollitia aut atque aut.

- +

Ut repellat blanditiis est dolore sunt dolorum quae.

@@ -181,13 +108,13 @@

- +

Jane Smith

Itaque quidem optio quia voluptatibus dolorem dolor. Modi eum sed possimus accusantium. Quas repellat voluptatem officia numquam sint aspernatur voluptas. Esse et accusantium ut unde voluptas. @@ -207,7 +134,7 @@

-
+
Georgia Reader Reply
@@ -221,7 +148,7 @@
-
+
Aron Alvarado Reply
@@ -233,7 +160,7 @@
-
+
Lynda Small Reply
@@ -249,7 +176,7 @@
-
+
Sianna Ramsay Reply
@@ -267,7 +194,7 @@
-
+
Nolan Davidson Reply
@@ -282,7 +209,7 @@
-
+
Kay Duggan Reply
@@ -304,29 +231,29 @@
-

Post Comment

-

Your email address will not be published. Required fields are marked *

+

发表评论

+

您的邮箱地址不会被公开。必填项已标记 *

- +
- +
- +
- +
- +
@@ -343,7 +270,7 @@
- - - - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/themes/template3/blog.html b/public/themes/template3/blog.php similarity index 56% rename from public/themes/template3/blog.html rename to public/themes/template3/blog.php index 82bdf20..b32f630 100644 --- a/public/themes/template3/blog.html +++ b/public/themes/template3/blog.php @@ -1,91 +1,18 @@ - - - - - - - - Blog - Nova Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - -
+ -
+
-

Blog

+

新闻中心

@@ -106,17 +33,17 @@
- +

- Dolorum optio tempore voluptas dignissimos + Dolorum optio tempore voluptas dignissimos

- +
+ + \ No newline at end of file diff --git a/public/themes/template3/footer.php b/public/themes/template3/footer.php new file mode 100644 index 0000000..7aa8869 --- /dev/null +++ b/public/themes/template3/footer.php @@ -0,0 +1,21 @@ + + + + +
+ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/themes/template3/header.php b/public/themes/template3/header.php new file mode 100644 index 0000000..e52f6dd --- /dev/null +++ b/public/themes/template3/header.php @@ -0,0 +1,52 @@ + + + + + + + + + <?php echo isset($pageTitle) ? $pageTitle : 'Nova'; ?> + + + + + + + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/public/themes/template3/index.html b/public/themes/template3/index.php similarity index 62% rename from public/themes/template3/index.html rename to public/themes/template3/index.php index 058758d..6958fbb 100644 --- a/public/themes/template3/index.html +++ b/public/themes/template3/index.php @@ -1,98 +1,25 @@ - - - - - - - - Index - Nova Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - -
+
- +
-

Focus On What Matters

+

专注于重要的事情

Lorem ipsum dolor, sit amet consectetur adipisicing elit. Perspiciatis cum recusandae eum laboriosam voluptatem repudiandae odio, vel exercitationem officiis provident minima.

@@ -108,7 +35,7 @@
- +
@@ -138,7 +65,7 @@
-

Let's grow your business together

+

让我们一起成长

Optio reiciendis accusantium iusto architecto at quia minima maiores quidem, dolorum.

Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellendus, ipsam perferendis asperiores explicabo vel tempore velit totam, natus nesciunt accusantium dicta quod quibusdam ipsum maiores nobis non, eum. Ullam reiciendis dignissimos laborum aut, magni voluptatem velit doloribus quas sapiente optio.

@@ -187,7 +114,7 @@
-

Our Services

+

我们的服务

Necessitatibus eius consequatur ex aliquid fuga eum quidem sint consectetur velit

@@ -200,7 +127,7 @@

Lorem Ipsum

Voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident

- Learn More + 了解更多
@@ -210,7 +137,7 @@

Dolor Sitema

Minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat tarad limino ata

- Learn More + 了解更多
@@ -219,7 +146,7 @@

Sed ut perspiciatis

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur

- Learn More + 了解更多
@@ -228,7 +155,7 @@

Magni Dolores

Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum

- Learn More + 了解更多
@@ -237,7 +164,7 @@

Nemo Enim

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque

- Learn More + 了解更多
@@ -246,7 +173,7 @@

Eiusmod Tempor

Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi

- Learn More + 了解更多
@@ -259,15 +186,15 @@
- +
-

Call To Action

+

联系我们

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

- Call To Action + 联系我们
@@ -281,8 +208,8 @@
-

Powerful Features for

-

Your Business

+

强大的功能

+

为您的企业

@@ -345,7 +272,7 @@
- Image + Image
@@ -358,7 +285,7 @@

Labore Sdio Lidui
Bonde Naruto

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Numquam nostrum molestias doloremque quae delectus odit minima corrupti blanditiis quo animi!

- Get Started + 开始使用
@@ -371,7 +298,7 @@
-

Recent Blog Posts

+

最新博客文章

@@ -381,53 +308,53 @@
-
+

Eum ad dolor et. Autem aut fugiat debitis

Illum voluptas ab enim placeat. Adipisci enim velit nulla. Vel omnis laudantium. Asperiores eum ipsa est officiis. Modi qui magni est...

- Read More + 阅读更多
-
+

Et repellendus molestiae qui est sed omnis

Voluptatem nesciunt omnis libero autem tempora enim ut ipsam id. Odit quia ab eum assumenda. Quisquam omnis doloribus...

- Read More + 阅读更多
-
+

Quia assumenda est et veritati

Quia nam eaque omnis explicabo similique eum quaerat similique laboriosam. Quis omnis repellat sed quae consectetur magnam...

- Read More + 阅读更多
-
+

Pariatur quia facilis similique deleniti

Et consequatur eveniet nam voluptas commodi cumque ea est ex. Aut quis omnis sint ipsum earum quia eligendi...

- Read More + 阅读更多
@@ -439,90 +366,4 @@
- - - - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/themes/template3/portfolio-details.html b/public/themes/template3/portfolio-details.html deleted file mode 100644 index 7db4ce0..0000000 --- a/public/themes/template3/portfolio-details.html +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - Portfolio Details - Nova Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-

Portfolio Details

- -
-
- - -
- -
- -
- -
-
- - - -
- -
- -
- -
- -
- -
- -
- -
- -
- -
-
-
-
- -
-
-

Project information

-
    -
  • Category: Web design
  • -
  • Client: ASU Company
  • -
  • Project date: 01 March, 2020
  • -
  • Project URL: www.example.com
  • -
-
-
-

Exercitationem repudiandae officiis neque suscipit

-

- Autem ipsum nam porro corporis rerum. Quis eos dolorem eos itaque inventore commodi labore quia quia. Exercitationem repudiandae officiis neque suscipit non officia eaque itaque enim. Voluptatem officia accusantium nesciunt est omnis tempora consectetur dignissimos. Sequi nulla at esse enim cum deserunt eius. -

-
-
- -
- -
- -
- -
- - - - - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/themes/template3/portfolio-details.php b/public/themes/template3/portfolio-details.php new file mode 100644 index 0000000..276da4b --- /dev/null +++ b/public/themes/template3/portfolio-details.php @@ -0,0 +1,96 @@ + + + +
+
+

产品详情

+ +
+
+ + +
+ +
+ +
+ +
+
+ + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+
+
+
+ +
+
+

项目信息

+
    +
  • 分类: Web设计
  • +
  • 客户: ASU公司
  • +
  • 项目日期: 2020年3月1日
  • +
  • 项目链接: www.example.com
  • +
+
+
+

Exercitationem repudiandae officiis neque suscipit

+

+ Autem ipsum nam porro corporis rerum. Quis eos dolorem eos itaque inventore commodi labore quia quia. Exercitationem repudiandae officiis neque suscipit non officia eaque itaque enim. Voluptatem officia accusantium nesciunt est omnis tempora consectetur dignissimos. Sequi nulla at esse enim cum deserunt eius. +

+
+
+ +
+ +
+ +
+ +
+ + \ No newline at end of file diff --git a/public/themes/template3/portfolio.html b/public/themes/template3/portfolio.html deleted file mode 100644 index 2b43a2b..0000000 --- a/public/themes/template3/portfolio.html +++ /dev/null @@ -1,327 +0,0 @@ - - - - - - - - Portfolio - Nova Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-

Portfolio

- -
-
- - -
- -
- -
- -
    -
  • All
  • -
  • App
  • -
  • Product
  • -
  • Branding
  • -
  • Books
  • -
- -
- -
- -
-

App 1

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

Product 1

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

Branding 1

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

Books 1

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

App 2

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

Product 2

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

Branding 2

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

Books 2

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

App 3

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

Product 3

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

Branding 3

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
-

Books 3

-

Lorem ipsum, dolor sit amet consectetur

- - -
-
- -
- -
- -
- -
- -
- - - - - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/themes/template3/portfolio.php b/public/themes/template3/portfolio.php new file mode 100644 index 0000000..a5771bd --- /dev/null +++ b/public/themes/template3/portfolio.php @@ -0,0 +1,168 @@ + + + +
+
+

特色业务

+ +
+
+ + +
+ +
+ +
+ +
    +
  • 全部
  • +
  • 应用
  • +
  • 产品
  • +
  • 品牌
  • +
  • 书籍
  • +
+ +
+ +
+ +
+

应用 1

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

产品 1

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

品牌 1

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

书籍 1

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

应用 2

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

产品 2

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

品牌 2

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

书籍 2

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

应用 3

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

产品 3

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

品牌 3

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+

书籍 3

+

Lorem ipsum, dolor sit amet consectetur

+ + +
+
+ +
+ +
+ +
+ +
+ + + + \ No newline at end of file diff --git a/public/themes/template3/preview.png b/public/themes/template3/preview.png new file mode 100644 index 0000000..0b5832c Binary files /dev/null and b/public/themes/template3/preview.png differ diff --git a/public/themes/template3/service-details.html b/public/themes/template3/service-details.html deleted file mode 100644 index d04f914..0000000 --- a/public/themes/template3/service-details.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - Service Details - Nova Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-

Service Details

- -
-
- - -
- -
- -
- -
- - - -
-

Download Catalog

- -
- -
- -

Have a Question?

-

+1 5589 55488 55

-

contact@example.com

-
- -
- -
- -

Temporibus et in vero dicta aut eius lidero plastis trand lined voluptas dolorem ut voluptas

-

- Blanditiis voluptate odit ex error ea sed officiis deserunt. Cupiditate non consequatur et doloremque consequuntur. Accusantium labore reprehenderit error temporibus saepe perferendis fuga doloribus vero. Qui omnis quo sit. Dolorem architecto eum et quos deleniti officia qui. -

-
    -
  • Aut eum totam accusantium voluptatem.
  • -
  • Assumenda et porro nisi nihil nesciunt voluptatibus.
  • -
  • Ullamco laboris nisi ut aliquip ex ea
  • -
-

- Est reprehenderit voluptatem necessitatibus asperiores neque sed ea illo. Deleniti quam sequi optio iste veniam repellat odit. Aut pariatur itaque nesciunt fuga. -

-

- Sunt rem odit accusantium omnis perspiciatis officia. Laboriosam aut consequuntur recusandae mollitia doloremque est architecto cupiditate ullam. Quia est ut occaecati fuga. Distinctio ex repellendus eveniet velit sint quia sapiente cumque. Et ipsa perferendis ut nihil. Laboriosam vel voluptates tenetur nostrum. Eaque iusto cupiditate et totam et quia dolorum in. Sunt molestiae ipsum at consequatur vero. Architecto ut pariatur autem ad non cumque nesciunt qui maxime. Sunt eum quia impedit dolore alias explicabo ea. -

-
- -
- -
- -
- -
- - - - - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/themes/template3/service-details.php b/public/themes/template3/service-details.php new file mode 100644 index 0000000..7d3839d --- /dev/null +++ b/public/themes/template3/service-details.php @@ -0,0 +1,85 @@ + + + +
+
+

服务详情

+ +
+
+ + +
+ +
+ +
+ +
+ + + +
+

下载目录

+ +
+ +
+ +

有疑问吗?

+

+1 5589 55488 55

+

contact@example.com

+
+ +
+ +
+ +

Temporibus et in vero dicta aut eius lidero plastis trand lined voluptas dolorem ut voluptas

+

+ Blanditiis voluptate odit ex error ea sed officiis deserunt. Cupiditate non consequatur et doloremque consequuntur. Accusantium labore reprehenderit error temporibus saepe perferendis fuga doloribus vero. Qui omnis quo sit. Dolorem architecto eum et quos deleniti officia qui. +

+
    +
  • Aut eum totam accusantium voluptatem.
  • +
  • Assumenda et porro nisi nihil nesciunt voluptatibus.
  • +
  • Ullamco laboris nisi ut aliquip ex ea
  • +
+

+ Est reprehenderit voluptatem necessitatibus asperiores neque sed ea illo. Deleniti quam sequi optio iste veniam repellat odit. Aut pariatur itaque nesciunt fuga. +

+

+ Sunt rem odit accusantium omnis perspiciatis officia. Laboriosam aut consequuntur recusandae mollitia doloremque est architecto cupiditate ullam. Quia est ut occaecati fuga. Distinctio ex repellendus eveniet velit sint quia sapiente cumque. Et ipsa perferendis ut nihil. Laboriosam vel voluptates tenetur nostrum. Eaque iusto cupiditate et totam et quia dolorum in. Sunt molestiae ipsum at consequatur vero. Architecto ut pariatur autem ad non cumque nesciunt qui maxime. Sunt eum quia impedit dolore alias explicabo ea. +

+
+ +
+ +
+ +
+ + + + \ No newline at end of file diff --git a/public/themes/template3/services.html b/public/themes/template3/services.php similarity index 59% rename from public/themes/template3/services.html rename to public/themes/template3/services.php index 008ddb5..25fba5f 100644 --- a/public/themes/template3/services.html +++ b/public/themes/template3/services.php @@ -1,91 +1,18 @@ - - - - - - - - Services - Nova Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - -
+ -
+
-

Services

+

服务项目

@@ -96,7 +23,7 @@
-

Our Services

+

我们的服务

Necessitatibus eius consequatur ex aliquid fuga eum quidem sint consectetur velit

@@ -109,7 +36,7 @@

Lorem Ipsum

Voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident

- Learn More + 了解更多
@@ -119,7 +46,7 @@

Dolor Sitema

Minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat tarad limino ata

- Learn More + 了解更多
@@ -128,7 +55,7 @@

Sed ut perspiciatis

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur

- Learn More + 了解更多
@@ -137,7 +64,7 @@

Magni Dolores

Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum

- Learn More + 了解更多
@@ -146,7 +73,7 @@

Nemo Enim

At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque

- Learn More + 了解更多
@@ -155,7 +82,7 @@

Eiusmod Tempor

Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi

- Learn More + 了解更多
@@ -176,7 +103,7 @@
-
+
@@ -192,7 +119,7 @@
-
+
@@ -208,7 +135,7 @@
-
+
@@ -224,7 +151,7 @@
-
+
@@ -247,7 +174,7 @@
-

Testimonials

+

客户评价

Necessitatibus eius consequatur ex aliquid fuga eum quidem sint consectetur velit

@@ -290,9 +217,9 @@ Proin iaculis purus consequat sem cure digni ssim donec porttitora entum suscipit rhoncus. Accusantium quam, ultricies eget id, aliquam eget nibh et. Maecen aliquam, risus at semper.

- +

Saul Goodman

-

Ceo & Founder

+

首席执行官

@@ -306,9 +233,9 @@ Export tempor illum tamen malis malis eram quae irure esse labore quem cillum quid cillum eram malis quorum velit fore eram velit sunt aliqua noster fugiat irure amet legam anim culpa.

- +

Sara Wilsson

-

Designer

+

设计师

@@ -322,9 +249,9 @@ Enim nisi quem export duis labore cillum quae magna enim sint quorum nulla quem veniam duis minim tempor labore quem eram duis noster aute amet eram fore quis sint minim.

- +

Jena Karlis

-

Store Owner

+

店铺老板

@@ -338,9 +265,9 @@ Fugiat enim eram quae cillum dolore dolor amet nulla culpa multos export minim fugiat minim velit minim dolor enim duis veniam ipsum anim magna sunt elit fore quem dolore labore illum veniam.

- +

Matt Brandon

-

Freelancer

+

自由职业者

@@ -354,9 +281,9 @@ Quis quorum aliqua sint quem legam fore sunt eram irure aliqua veniam tempor noster veniam enim culpa labore duis sunt culpa nulla illum cillum fugiat legam esse veniam culpa fore nisi cillum quid.

- +

John Larson

-

Entrepreneur

+

企业家

@@ -371,90 +298,4 @@
- - - - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/public/themes/template3/team.html b/public/themes/template3/team.html deleted file mode 100644 index d3bbd5c..0000000 --- a/public/themes/template3/team.html +++ /dev/null @@ -1,267 +0,0 @@ - - - - - - - - Team - Nova Bootstrap Template - - - - - - - - - - - - - - - - - - - - - - - - -
- - -
-
-

Team

- -
-
- - -
- -
- -
- -
-
-
- - -
-
-

Walter White

- Chief Executive Officer -
-
-
- -
-
-
- - -
-
-

Sarah Jhonson

- Product Manager -
-
-
- -
-
-
- - -
-
-

William Anderson

- CTO -
-
-
- -
-
-
- - -
-
-

Amanda Jepson

- Accountant -
-
-
- -
- -
- -
- -
- - - - - - - -
- - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/themes/template3/team.php b/public/themes/template3/team.php new file mode 100644 index 0000000..37e1d9b --- /dev/null +++ b/public/themes/template3/team.php @@ -0,0 +1,108 @@ + + + +
+
+

团队成员

+ +
+
+ + +
+ +
+ +
+ +
+
+
+ + +
+
+

Walter White

+ 首席执行官 +
+
+
+ +
+
+
+ + +
+
+

Sarah Jhonson

+ 产品经理 +
+
+
+ +
+
+
+ + +
+
+

William Anderson

+ 技术总监 +
+
+
+ +
+
+
+ + +
+
+

Amanda Jepson

+ 会计 +
+
+
+ +
+ +
+ +
+ + + + \ No newline at end of file