Skip to content

Commit 2f19847

Browse files
Merge pull request #143 from ContentsViewer/pre
言語ごとのページに固有のurlを用意
2 parents e71b083 + 84e2ae9 commit 2f19847

15 files changed

+207
-81
lines changed

Frontend/400.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
$vars['panelContentOnGameover'] =
2323
Localization\Localize('400.panelContentOnGameover',
24-
"Back to the main objectives. ↓" .
24+
"Back to the main objective. ↓" .
2525
"<a href='{0}'>Goto TopPage</a><br/>or",
2626
CreateContentHREF($vars['rootContentPath']));
2727

Frontend/403.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
$vars['panelContentOnGameover'] =
1616
Localization\Localize('403.panelContentOnGameover',
17-
"Back to the main objectives. ↓" .
17+
"Back to the main objective. ↓" .
1818
"<a href='{0}'>Re-login to access the content</a><br/>or",
1919
ROOT_URI . "/Logout?token=" . H(Authenticator::GenerateCsrfToken()) . "&returnTo=" . urlencode($_SERVER["REQUEST_URI"]));
2020

Frontend/500.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
$vars['panelContentOnGameover'] =
2424
Localization\Localize('500.panelContentOnGameover',
25-
"Back to the main objectives. ↓" .
25+
"Back to the main objective. ↓" .
2626
"<a href='{0}'>Goto TopPage</a><br/>or",
2727
CreateContentHREF($vars['rootContentPath']));
2828

Frontend/contents-viewer.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,9 @@
4444
Authenticator::GetUserInfo($vars['owner'], 'enableRemoteEdit', $enableRemoteEdit);
4545

4646
// layerの再設定
47-
$vars['layerName'] = UpdateLayerNameAndResetLocalization($vars['layerName'], $contentPath);
48-
47+
$out = UpdateLayerNameAndResetLocalization($contentPath, $vars['layerName'], $vars['language']);
48+
$vars['layerName'] = $out['layerName'];
49+
$vars['language'] = $out['language'];
4950
$vars['layerSelector'] = CreateRelatedLayerSelector($contentPath);
5051

5152

@@ -251,11 +252,14 @@
251252
// page-tabの追加
252253
$vars['pageTabs'] = [
253254
['selected' => true, 'innerHTML' => '<a href="' . CreateContentHREF($currentContent->path) . '">' . Localization\Localize('content', 'Content') .'</a>'],
254-
['selected' => false, 'innerHTML' => '<a href="' . CreateContentHREF($currentContent->path) . '.note">'. Localization\Localize('note', 'Note') . '</a>'],
255-
['selected' => false, 'innerHTML' => '<a href="' . CreateDirectoryHREF(dirname($contentPath)) .'">' . Localization\Localize('directory', 'Directory') .'</a>'],
255+
['selected' => false, 'innerHTML' => '<a href="' . CreateContentHREF($currentContent->path . '.note') . '">'. Localization\Localize('note', 'Note') . '</a>'],
256+
['selected' => false, 'innerHTML' => '<a href="' . CreateDirectoryHREF(dirname($contentPath), $vars['language']) .'">' . Localization\Localize('directory', 'Directory') .'</a>'],
256257
['selected' => false, 'innerHTML' => '<a href="' . CreateContentHREF($currentContent->path) .'?related">' . Localization\Localize('related', 'Related') . '</a>']
257258
];
258259

260+
$vars['canonialUrl'] = (empty($_SERVER["HTTPS"]) ? "http://" : "https://") .
261+
$_SERVER["HTTP_HOST"] . CreateContentHREF($contentPath);
262+
259263
// ビルド時間計測 終了
260264
$stopwatch->Stop();
261265
$vars['pageBuildReport']['times']['build']['ms'] = $stopwatch->Elapsed() * 1000;

Frontend/directory-viewer.php

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,12 @@
5050

5151
$vars['pageHeading']['parents'] = [];
5252
foreach($parents as $parent){
53-
$vars['pageHeading']['parents'][] = ['title' => basename($parent), 'path' => CreateDirectoryHREF($parent)];
53+
$vars['pageHeading']['parents'][] = [
54+
'title' => basename($parent), 'path' => CreateDirectoryHREF($parent, $vars['language'])
55+
];
5456
}
5557

56-
$vars['navigator'] = CreateNavi($parents, $vars['directoryPath'], $subDirs);
58+
$vars['navigator'] = CreateNavi($parents, $vars['directoryPath'], $subDirs, $vars['language']);
5759
$vars['childList'] = [];
5860

5961
if(count($subDirs) > 0 || count($contents) > 0 || count($files) > 0){
@@ -77,7 +79,7 @@
7779
$body .= '<h3>' . Localization\Localize('subdirectories', 'Subdirectories') . '</h3>';
7880
$body .= '<div class="directory-container">';
7981
foreach($subDirs as $subDir){
80-
$body .= '<a class="directory" href="' . CreateDirectoryHREF($subDir) . '">';
82+
$body .= '<a class="directory" href="' . CreateDirectoryHREF($subDir, $vars['language']) . '">';
8183
$body .= '<div class="icon folder-icon"></div>';
8284
$body .= '<div class="name">' . basename($subDir) . '</div>';
8385
$body .= '</a>';
@@ -122,14 +124,17 @@
122124
}
123125
$vars['contentBody'] = $body;
124126

127+
$vars['canonialUrl'] = (empty($_SERVER["HTTPS"]) ? "http://" : "https://") .
128+
$_SERVER["HTTP_HOST"] . $vars['subURI'] . '?hl=' . $vars['layerName'];
129+
125130
// ビルド時間計測 終了
126131
$stopwatch->Stop();
127132
$vars['pageBuildReport']['times']['build']['ms'] = $stopwatch->Elapsed() * 1000;
128133

129134

130135
require(FRONTEND_DIR . '/viewer.php');
131136

132-
function CreateNavi($parents, $current, $children){
137+
function CreateNavi($parents, $current, $children, $language){
133138
$navi = '<nav class="navi"><ul>';
134139

135140
$parentIndex = -1;
@@ -154,12 +159,12 @@ function CreateNavi($parents, $current, $children){
154159

155160
if(strpos($current, $path) === 0){
156161
$navi .= '<li><a class = "selected" href="' .
157-
CreateDirectoryHREF($path) . '">' .
162+
CreateDirectoryHREF($path, $language) . '">' .
158163
basename($path) . '</a></li>';
159164
}
160165
else{
161166
$navi .= '<li><a href="' .
162-
CreateDirectoryHREF($path) . '">' .
167+
CreateDirectoryHREF($path, $language) . '">' .
163168
basename($path) . '</a></li>';
164169
}
165170

Frontend/note-viewer.php

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@
3232
Authenticator::GetUserInfo($vars['owner'], 'enableRemoteEdit', $enableRemoteEdit);
3333

3434
// layerの再設定
35-
$vars['layerName'] = UpdateLayerNameAndResetLocalization($vars['layerName'], $vars['contentPath']);
36-
35+
$out = UpdateLayerNameAndResetLocalization($vars['contentPath'], $vars['layerName'], $vars['language']);
36+
$vars['layerName'] = $out['layerName'];
37+
$vars['language'] = $out['language'];
3738

3839
$relatedContentPath = dirname($vars['contentPath']) . '/' . basename($vars['contentPath'], '.note');
3940

@@ -101,11 +102,19 @@
101102
$vars['pageHeading']['parents'] = [];
102103
$vars['pageHeading']['title'] = $vars['pageTitle'];
103104

104-
$vars['pageTabs'][] = ['selected' => true, 'innerHTML' => '<a href="' . ROOT_URI . $vars['subURI'] . '">' . Localization\Localize('note', 'Note') . '</a>'];
105-
$vars['pageTabs'][] = ['selected' => false, 'innerHTML' => '<a href="' . ROOT_URI . dirname($vars['subURI']) . '">' . Localization\Localize('directory', 'Directory') . '</a>'];
105+
$vars['pageTabs'][] = [
106+
'selected' => true,
107+
'innerHTML' => '<a href="' . CreateContentHREF($vars['contentPath']) . '">' . Localization\Localize('note', 'Note') . '</a>'
108+
];
109+
$vars['pageTabs'][] = [
110+
'selected' => false,
111+
'innerHTML' => '<a href="' . CreateDirectoryHREF(dirname($vars['subURI']), $vars['language']) . '">' . Localization\Localize('directory', 'Directory') . '</a>'
112+
];
106113

107114
if($relatedContentExists){
108-
$vars['pageTabs'][] = ['selected' => false, 'innerHTML' => '<a href="' . CreateContentHREF($relatedContentPath) . '?related">' . Localization\Localize('related', 'Related') . '</a>'];
115+
$vars['pageTabs'][] = [
116+
'selected' => false, 'innerHTML' => '<a href="' . CreateContentHREF($relatedContentPath) . '?related">' . Localization\Localize('related', 'Related') . '</a>'
117+
];
109118
}
110119

111120

@@ -141,16 +150,19 @@
141150
$vars['contentBody'] = $body;
142151

143152
// plainText リンクの追加
144-
$vars['addPlainTextLink'] = true;
153+
$vars['addPlainTextLink'] = $noteExists;
145154

146155
// edit リンクの追加
147-
$vars['addEditLink'] = true;
156+
$vars['addEditLink'] = $noteExists;
148157
$vars['openNewTabEditLink'] = $enableRemoteEdit;
149158

150159
// ビルド時間計測 終了
151160
$stopwatch->Stop();
152161
$vars['pageBuildReport']['times']['build']['ms'] = $stopwatch->Elapsed() * 1000;
153162

163+
$vars['canonialUrl'] = (empty($_SERVER["HTTPS"]) ? "http://" : "https://") .
164+
$_SERVER["HTTP_HOST"] . CreateContentHREF($vars['contentPath']);
165+
154166
require(FRONTEND_DIR . '/viewer.php');
155167

156168
function GetNavigator($contentPath){

Frontend/related-viewer.php

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@
104104
// Debug::Log($childPathList);
105105
// $titleSuggestions = SelectDifferentDirectoryContents($titleSuggestions, $currentContent->path, $childPathList);
106106
$suggestions = SelectDifferentDirectoryContents($suggestions, $currentContent->path, $childPathList);
107+
$suggestions = array_slice($suggestions, 0, 30); // 最大30件
107108

108109
// End 関連コンテンツの検索 =================================================
109110

@@ -125,8 +126,8 @@
125126
// page-tabの追加
126127
$vars['pageTabs'] = [
127128
['selected' => false, 'innerHTML' => '<a href="' . CreateContentHREF($currentContent->path) . '">' . Localization\Localize('content', 'Content') . '</a>'],
128-
['selected' => false, 'innerHTML' => '<a href="' . CreateContentHREF($currentContent->path) . '.note">' . Localization\Localize('note', 'Note') . '</a>'],
129-
['selected' => false, 'innerHTML' => '<a href="' . CreateDirectoryHREF(dirname($contentPath)) .'">' . Localization\Localize('directory', 'Directory') . '</a>'],
129+
['selected' => false, 'innerHTML' => '<a href="' . CreateContentHREF($currentContent->path . '.note') . '">' . Localization\Localize('note', 'Note') . '</a>'],
130+
['selected' => false, 'innerHTML' => '<a href="' . CreateDirectoryHREF(dirname($contentPath), $vars['language']) .'">' . Localization\Localize('directory', 'Directory') . '</a>'],
130131
['selected' => true, 'innerHTML' => '<a href="' . CreateContentHREF($currentContent->path) .'?related">' . Localization\Localize('related', 'Related') . '</a>']
131132
];
132133

@@ -156,6 +157,9 @@
156157

157158
$vars['contentBody'] = $body;
158159

160+
$vars['canonialUrl'] = (empty($_SERVER["HTTPS"]) ? "http://" : "https://") .
161+
$_SERVER["HTTP_HOST"] . CreateContentHREF($vars['contentPath']) . '?related';
162+
159163
// ビルド時間計測 終了
160164
$stopwatch->Stop();
161165
$vars['pageBuildReport']['times']['build']['ms'] = $stopwatch->Elapsed() * 1000;

Frontend/tag-viewer.php

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,27 @@
1616
$stopwatch = new Stopwatch();
1717
$stopwatch->Start();
1818

19-
$layerSuffix = ContentsDatabaseManager::GetLayerSuffix($vars['layerName']);
19+
if(isset($_GET['layer'])){
20+
$vars['layerName'] = $_GET['layer'];
21+
}
2022

23+
$layerSuffix = ContentsDatabaseManager::GetLayerSuffix($vars['layerName']);
2124
$vars['rootContentPath'] = $vars['contentsFolder'] . '/' . ROOT_FILE_NAME . $layerSuffix;
2225
$vars['rootDirectory'] = substr(GetTopDirectory($vars['rootContentPath']), 1);
26+
$metaFileName = ContentsDatabaseManager::GetRelatedMetaFileName($vars['rootContentPath']);
27+
28+
if(!file_exists(Content::RealPath($vars['rootContentPath'], '', false)) &&
29+
!file_exists(Content::RealPath($metaFileName, '', false))){
30+
// Rootコンテンツ, メタファイルがないとき
31+
// 存在しないlayer名を見ている
32+
33+
$vars['errorMessage'] = Localization\Localize('invalidParameter', 'Invalid Parameter.');
34+
require(FRONTEND_DIR . '/400.php');
35+
exit();
36+
}
2337

2438
ContentsDatabaseManager::LoadRelatedMetadata($vars['rootContentPath']);
25-
$metaFileName = ContentsDatabaseManager::GetRelatedMetaFileName($vars['rootContentPath']);
39+
setcookie('layer', $vars['layerName'], time()+(60*60*24*30*6), '/'); // 有効時間 6カ月
2640

2741
$tag2path = array_key_exists('tag2path', ContentsDatabase::$metadata) ? ContentsDatabase::$metadata['tag2path'] : [];
2842
$path2tag = array_key_exists('path2tag', ContentsDatabase::$metadata) ? ContentsDatabase::$metadata['path2tag'] : [];
@@ -63,7 +77,7 @@
6377
}
6478

6579

66-
$relocatedURL = CreateTagMapHREF([[]], $vars['rootDirectory']);
80+
$relocatedURL = CreateTagMapHREF([], $vars['rootDirectory'], $vars['layerName']);
6781
$notFound = false;
6882
foreach($tagPathParts as $part){
6983
foreach($part as $j => $tag){
@@ -84,6 +98,9 @@
8498

8599
// ここまでで, 各タグ名はtag2path内にあることが保証されている
86100

101+
$vars['canonialUrl'] = (empty($_SERVER["HTTPS"]) ? "http://" : "https://") .
102+
$_SERVER["HTTP_HOST"] . $vars['subURI'] . '?layer=' . $vars['layerName'];
103+
87104
$vars['pageTitle'] = '';
88105
$vars['pageHeading']['title'] = '';
89106
$vars['pageHeading']['parents'] = [];
@@ -113,11 +130,13 @@
113130
unset($workTagPathParts[$i + 1]);
114131
$vars['pageHeading']['parents'][] = [
115132
'title' => implode(', ', $tagPathParts[$i]),
116-
'path' => CreateTagMapHREF($workTagPathParts, $vars['rootDirectory'])];
133+
'path' => CreateTagMapHREF($workTagPathParts, $vars['rootDirectory'], $vars['layerName'])
134+
];
117135
}
118136
$vars['pageHeading']['parents'][] = [
119137
'title' => Localization\Localize('tagmap', 'TagMap'),
120-
'path' => CreateTagMapHREF([[]], $vars['rootDirectory'])];
138+
'path' => CreateTagMapHREF([], $vars['rootDirectory'], $vars['layerName'])
139+
];
121140
// Debug::Log($tagPathParts);
122141
// Debug::Log($workTagPathParts);
123142
}
@@ -126,16 +145,22 @@
126145
if(count($tagPathParts) <= 0){
127146
// タグマップを表示して, 終了する.
128147
$vars['contentSummary'] = '<div style="margin-top: 1em; margin-botton: 1em;">' .
129-
CreateTagListElement($tag2path, $vars['rootDirectory']) .
148+
CreateTagListElement($tag2path, $vars['rootDirectory'], $vars['layerName']) .
130149
'</div>';
131-
$vars['navigator'] = CreateNavi([], $tag2path, $path2tag, $vars['rootDirectory']);
150+
$vars['navigator'] = CreateNavi([], $tag2path, $path2tag, $vars['rootDirectory'], $vars['layerName']);
151+
152+
// ビルド時間計測 終了
153+
$stopwatch->Stop();
154+
$vars['pageBuildReport']['times']['build']['ms'] = $stopwatch->Elapsed() * 1000;
155+
132156
require(FRONTEND_DIR . '/viewer.php');
133157
exit();
134158
}
135159

136160
// ここから先は, 何らかのタグが指定されている
137161
// * $tagPathParts の要素数は 0 より大きい
138162

163+
139164
/**
140165
* [
141166
* [
@@ -292,7 +317,7 @@
292317
array_splice($workTags, $i, 1);
293318
$workTagPathParts[count($workTagPathParts) - 1] = $workTags;
294319
$body .= '<li><a href="' .
295-
CreateTagMapHREF($workTagPathParts, $vars['rootDirectory']) .
320+
CreateTagMapHREF($workTagPathParts, $vars['rootDirectory'], $vars['layerName']) .
296321
'">' . $tag . '<span>' . count($excludedTags[$tag]) . '</span></a></li>';
297322
}
298323
$body .= '</ul>';
@@ -306,7 +331,7 @@
306331
$workTagPathParts[count($workTagPathParts) - 1][] = $tag;
307332
// Debug::Log($workTagPathParts);
308333
$body .= '<li><a href="' .
309-
CreateTagMapHREF($workTagPathParts, $vars['rootDirectory']) .
334+
CreateTagMapHREF($workTagPathParts, $vars['rootDirectory'], $vars['layerName']) .
310335
'">' . $tag . '<span>' . count($pathList) . '</span></a></li>';
311336
}
312337
$body .= '</ul>';
@@ -320,7 +345,7 @@
320345
$workTagPathParts[count($workTagPathParts) - 1][] = $tag;
321346
// Debug::Log($workTagPathParts);
322347
$body .= '<li><a href="' .
323-
CreateTagMapHREF($workTagPathParts, $vars['rootDirectory']) .
348+
CreateTagMapHREF($workTagPathParts, $vars['rootDirectory'], $vars['layerName']) .
324349
'">' . $tag . '<span>' . count($pathList) . '</span></a></li>';
325350
}
326351
$body .= '</ul>';
@@ -330,7 +355,7 @@
330355

331356
if(count($childTags) > 0){
332357
$body .= '<div><h3>&gt; ' . Localization\Localize('tag-viewer.narrowDown', 'Narrow Down') . '</h3><div style="margin-left: 16px;">';
333-
$body .= CreateTagListElement($childTags, $vars['rootDirectory'], $tagPathParts);
358+
$body .= CreateTagListElement($childTags, $vars['rootDirectory'], $vars['layerName'], $tagPathParts);
334359
$body .= '</div></div>';
335360
}
336361

@@ -350,7 +375,7 @@
350375

351376

352377
// navigator 設定
353-
$vars['navigator'] = CreateNavi($eachSelectedTaggedPaths, $tag2path, $path2tag, $vars['rootDirectory']);;
378+
$vars['navigator'] = CreateNavi($eachSelectedTaggedPaths, $tag2path, $path2tag, $vars['rootDirectory'], $vars['layerName']);;
354379

355380

356381
// ビルド時間計測 終了
@@ -395,7 +420,7 @@ function GetUnionTags($paths, $path2tag){
395420
* ], ...
396421
* ]
397422
*/
398-
function CreateNavi($eachSelectedTaggedPaths, $tag2path, $path2tag, $rootDirectory){
423+
function CreateNavi($eachSelectedTaggedPaths, $tag2path, $path2tag, $rootDirectory, $layerName){
399424
$navi = '<nav class="navi"><ul>';
400425

401426
$tagStack = array_reverse(array_keys($tag2path));
@@ -425,7 +450,7 @@ function CreateNavi($eachSelectedTaggedPaths, $tag2path, $path2tag, $rootDirecto
425450
$alreadyCrawlIntoChildrenStack[] = true;
426451
$currentPathParts[] = $currentTaggedPaths['selectors'];
427452
$navi .= '<li><a href="' .
428-
CreateTagMapHREF($currentPathParts, $rootDirectory) .
453+
CreateTagMapHREF($currentPathParts, $rootDirectory, $layerName) .
429454
'" class="selected">' . implode(', ', $currentTaggedPaths['selectors']) .
430455
'</a></li><ul>';
431456
$unionTags = GetUnionTags($currentTaggedPaths['selected'], $path2tag);
@@ -447,7 +472,7 @@ function CreateNavi($eachSelectedTaggedPaths, $tag2path, $path2tag, $rootDirecto
447472
}
448473
}
449474
$navi .= '<li><a href="' .
450-
CreateTagMapHREF(array_merge($currentPathParts, [[$poppedTag]]), $rootDirectory) .
475+
CreateTagMapHREF(array_merge($currentPathParts, [[$poppedTag]]), $rootDirectory, $layerName) .
451476
'">' . $poppedTag .
452477
'</a></li>';
453478
}

0 commit comments

Comments
 (0)