Skip to content

Commit bb285f4

Browse files
committed
优化:模板界面增加page、pageSize等参数
1 parent a92d788 commit bb285f4

File tree

9 files changed

+75
-21
lines changed

9 files changed

+75
-21
lines changed

app/Console/Commands/MigrateJob.php

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55

66

77
use Illuminate\Console\Command;
8+
use Illuminate\Support\Str;
89
use ModStart\Core\Dao\ModelUtil;
10+
use ModStart\Core\Util\FileUtil;
911
use ModStart\Core\Util\HtmlUtil;
1012
use ModStart\Data\DataManager;
1113

@@ -15,12 +17,6 @@ class MigrateJob extends Command
1517

1618
public function handle()
1719
{
18-
print_r(ModelUtil::paginate('cms_content', 1, 10, [
19-
'whereOperate'=>['id','>',0],
20-
'where' => [
21-
'id' => 2
22-
]
23-
]));
2420
}
2521

2622
private function storageTest()

module/Cms/Api/Controller/DetailController.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,11 @@ public function index()
6868
BizException::throws('记录未审核');
6969
}
7070
}
71+
72+
$viewData['pageTitle'] = ($record['seoTitle'] ? $record['seoTitle'] : $record['title']) . ' | ' . modstart_config('siteName');
73+
$viewData['pageKeywords'] = $record['seoKeywords'] ? $record['seoKeywords'] : $record['title'];
74+
$viewData['pageDescription'] = $record['seoDescription'] ? $record['seoDescription'] : $record['title'];
75+
7176
return Response::generateSuccessData($viewData);
7277
}
7378
}

module/Cms/Util/CmsContentUtil.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,12 @@ public static function get($id)
215215
$table = "cms_m_$model[name]";
216216
$recordData = ModelUtil::get($table, $record['id']);
217217
$record['_tags'] = TagUtil::string2Array($record['tags']);
218+
$record['_tagList'] = array_map(function ($o) {
219+
return [
220+
'name' => $o,
221+
'url' => UrlUtil::tag($o),
222+
];
223+
}, $record['_tags']);
218224
foreach ($model['_customFields'] as $v) {
219225
$f = CmsField::getByName($v['fieldType']);
220226
$recordData[$v['name']] = $f->unserializeValue($recordData[$v['name']], $recordData);

module/Cms/Util/UrlUtil.php

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<?php
2+
3+
4+
namespace Module\Cms\Util;
5+
6+
7+
class UrlUtil
8+
{
9+
public static function tag($name)
10+
{
11+
return modstart_web_url('tag/' . htmlspecialchars($name));
12+
}
13+
}

module/Cms/Web/Controller/IndexController.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ class IndexController extends ModuleBaseController
99
{
1010
public function index()
1111
{
12-
return $this->view('cms.index');
12+
return $this->view('cms.index', [
13+
'pageTitle' => modstart_config('siteName') . ' | ' . modstart_config('siteSlogan'),
14+
'pageKeywords' => modstart_config('siteKeywords'),
15+
'pageDescription' => modstart_config('siteDescription'),
16+
]);
1317
}
1418
}

module/Cms/Web/Controller/ListController.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,20 @@ public function index($id = 0)
3737
$viewData['page'] = $page;
3838
$viewData['pageSize'] = $pageSize;
3939
$viewData['records'] = $paginateData['records'];
40+
$viewData['total'] = $paginateData['total'];
4041
$pageTemplate = '?page={page}';
4142
if (!empty($cat['pageFullUrl'])) {
4243
$pageTemplate = modstart_web_url($cat['pageFullUrl']);
4344
}
45+
$viewData['pageTemplate'] = $pageTemplate;
4446
$viewData['pageNextUrl'] = PageHtmlUtil::nextPageUrl($paginateData['total'], $pageSize, $page, $pageTemplate);
4547
$viewData['pagePrevUrl'] = PageHtmlUtil::prevPageUrl($paginateData['total'], $pageSize, $page, $pageTemplate);
4648
$viewData['pageHtml'] = PageHtmlUtil::render($paginateData['total'], $pageSize, $page, $pageTemplate);
49+
50+
$viewData['pageTitle'] = ($cat['seoTitle'] ? $cat['seoTitle'] : $cat['title']) . ' | ' . modstart_config('siteName');
51+
$viewData['pageKeywords'] = $cat['seoKeywords'] ? $cat['seoKeywords'] : $cat['title'];
52+
$viewData['pageDescription'] = $cat['seoDescription'] ? $cat['seoDescription'] : $cat['title'];
53+
4754
return $this->view('cms.list.' . CmsTemplateUtil::toBladeView($view), $viewData);
4855
}
4956
}

module/Cms/Web/Controller/SearchController.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,16 @@ public function index()
3030
$paginateData = CmsContentUtil::paginate($page, $pageSize, $option);
3131
$viewData = [];
3232
$viewData['keywords'] = $keywords;
33+
$viewData['page'] = $page;
34+
$viewData['pageSize'] = $pageSize;
3335
$viewData['records'] = $paginateData['records'];
3436
$viewData['total'] = $paginateData['total'];
37+
$viewData['pageTemplate'] = '?' . Request::mergeQueries(['page' => ['{page}']]);
3538
$viewData['pageHtml'] = PageHtmlUtil::render($paginateData['total'], $pageSize, $page, '?' . Request::mergeQueries(['page' => ['{page}']]));
39+
$viewData['pageTitle'] = '搜索:' . $keywords . ' | ' . modstart_config('siteName');
40+
$viewData['pageKeywords'] = '搜索:' . $keywords;
41+
$viewData['pageDescription'] = '搜索:' . $keywords;
42+
3643
return $this->view('cms.search.index', $viewData);
3744
}
3845
}

module/Cms/Web/Controller/TagController.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,14 @@ public function index($tag)
2525
$viewData = [];
2626
$viewData['tag'] = $tag;
2727
$viewData['records'] = $paginateData['records'];
28+
$viewData['page'] = $page;
29+
$viewData['pageSize'] = $pageSize;
2830
$viewData['total'] = $paginateData['total'];
31+
$viewData['pageTemplate'] = '?page={page}';
2932
$viewData['pageHtml'] = PageHtmlUtil::render($paginateData['total'], $pageSize, $page, '?page={page}');
33+
$viewData['pageTitle'] = $tag . ' | ' . modstart_config('siteName');
34+
$viewData['pageKeywords'] = $tag;
35+
$viewData['pageDescription'] = $tag;
3036
return $this->view('cms.tag.index', $viewData);
3137
}
3238
}

vendor/modstart/modstart/src/Core/Util/PageHtmlUtil.php

Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,14 @@ private static function itemRender($start, $end, $currentPage, $url, $template)
1212
$html = [];
1313
for ($i = $start; $i <= $end; $i++) {
1414
if ($i == $currentPage) {
15-
$html[] = sprintf($template['current'], $i);
15+
$html[] = self::replace($template['current'], [
16+
'%p%' => $i
17+
]);
1618
} else {
17-
$html[] = sprintf($template['item'], str_replace('{page}', $i, $url), $i);
19+
$html[] = self::replace($template['item'], [
20+
'%p%' => $i,
21+
'%s%' => self::buildPage($url, $i)
22+
]);
1823
}
1924
}
2025
return join('', $html);
@@ -31,7 +36,7 @@ public static function nextPageUrl($total, $pageSize, $currentPage, $url = '/url
3136
{
3237
$totalPage = ceil($total / $pageSize);
3338
if ($currentPage < $totalPage) {
34-
return str_replace('{page}', ($currentPage + 1), $url);
39+
return self::buildPage($url, $currentPage + 1);
3540
}
3641
return null;
3742
}
@@ -46,7 +51,7 @@ public static function nextPageUrl($total, $pageSize, $currentPage, $url = '/url
4651
public static function prevPageUrl($total, $pageSize, $currentPage, $url = '/url/for/path?page={page}')
4752
{
4853
if ($currentPage > 1) {
49-
return str_replace('{page}', ($currentPage - 1), $url);
54+
return self::buildPage($url, $currentPage - 1);
5055
}
5156
return null;
5257
}
@@ -73,14 +78,14 @@ public static function render($total, $pageSize, $currentPage, $url = '/url/for/
7378
{
7479
if (is_null($template)) {
7580
$template = [
76-
'warp' => '<div class="pages">%s</div>',
81+
'warp' => '<div class="pages">%s%</div>',
7782
'more' => '<span class="more">...</span>',
78-
'prev' => '<a class="page" href="%s">' . L('PrevPage') . '</a>',
83+
'prev' => '<a class="page" href="%s%">' . L('PrevPage') . '</a>',
7984
'prevDisabled' => null,
80-
'next' => '<a class="page" href="%s">' . L('NextPage') . '</a>',
85+
'next' => '<a class="page" href="%s%">' . L('NextPage') . '</a>',
8186
'nextDisabled' => null,
82-
'current' => '<span class="current">%d</span>',
83-
'item' => '<a class="page" href="%s">%d</a>',
87+
'current' => '<span class="current">%p%</span>',
88+
'item' => '<a class="page" href="%s%">%p%</a>',
8489
];
8590
}
8691

@@ -96,13 +101,14 @@ public static function render($total, $pageSize, $currentPage, $url = '/url/for/
96101

97102
if (!empty($template['first'])) {
98103
$html[] = self::replace($template['first'], [
99-
'%s' => self::buildPage($url, 1),
104+
'%s%' => self::buildPage($url, 1),
100105
]);
101106
}
102107

103108
if ($currentPage > 1) {
104109
$html[] = self::replace($template['prev'], [
105-
'%s' => self::buildPage($url, $currentPage - 1),
110+
'%s%' => self::buildPage($url, $currentPage - 1),
111+
'%p%' => $currentPage - 1,
106112
]);
107113
} else {
108114
if (!empty($template['prevDisabled'])) {
@@ -140,7 +146,9 @@ public static function render($total, $pageSize, $currentPage, $url = '/url/for/
140146
}
141147

142148
if ($currentPage < $totalPage) {
143-
$html[] = sprintf($template['next'], str_replace('{page}', ($currentPage + 1), $url));
149+
$html[] = self::replace($template['next'], [
150+
'%s%' => self::buildPage($url, $currentPage + 1),
151+
]);
144152
} else {
145153
if (!empty($template['nextDisabled'])) {
146154
$html[] = $template['nextDisabled'];
@@ -149,10 +157,12 @@ public static function render($total, $pageSize, $currentPage, $url = '/url/for/
149157

150158
if (!empty($template['last'])) {
151159
$html[] = self::replace($template['last'], [
152-
'%s' => self::buildPage($url, $totalPage),
160+
'%s%' => self::buildPage($url, $totalPage),
153161
]);
154162
}
155163

156-
return sprintf($template['warp'], join('', $html));
164+
return self::replace($template['warp'], [
165+
'%s%' => join('', $html),
166+
]);
157167
}
158168
}

0 commit comments

Comments
 (0)