Skip to content

Commit e738a04

Browse files
committed
https://github.com/elmsln/issues/issues/1610
1 parent d2dffd8 commit e738a04

File tree

8 files changed

+32
-9
lines changed

8 files changed

+32
-9
lines changed

build/es6/node_modules/@lrnwebcomponents/haxcms-elements/lib/core/haxcms-site-editor-ui.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/es6/node_modules/@lrnwebcomponents/haxcms-elements/lib/ui-components/navigation/site-menu.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

system/backend/php/lib/HAXCMS.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,7 @@ private function siteSettingsValue($context) {
512512
"manifest-metadata-author-socialLink": null
513513
},
514514
"seo": {
515+
"manifest-metadata-site-settings-lang": null,
515516
"manifest-metadata-site-settings-pathauto": null,
516517
"manifest-metadata-site-settings-publishPagesOn": null,
517518
"manifest-metadata-site-settings-sw": null,

system/backend/php/lib/HAXCMSSite.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ class HAXCMSSite
99
public $manifest;
1010
public $directory;
1111
public $basePath = '/';
12-
public $language = 'en-us';
1312
/**
1413
* Load a site based on directory and name
1514
*/
@@ -114,7 +113,8 @@ public function newSite(
114113
$this->manifest->metadata = new stdClass();
115114
$this->manifest->metadata->author = new stdClass();
116115
$this->manifest->metadata->site = new stdClass();
117-
$this->manifest->metadata->site->lang = 'en';
116+
$this->manifest->metadata->site->settings = new stdClass();
117+
$this->manifest->metadata->site->settings->lang = 'en'; // default but changed via settings
118118
$this->manifest->metadata->site->name = $tmpname;
119119
$this->manifest->metadata->site->domain = $domain;
120120
$this->manifest->metadata->site->created = time();
@@ -292,6 +292,7 @@ public function newSite(
292292
}
293293
// write the managed files to ensure we get happy copies
294294
$this->rebuildManagedFiles();
295+
$this->updateAlternateFormats();
295296
$this->gitCommit('Managed files updated');
296297
return $this;
297298
}
@@ -389,7 +390,7 @@ public function rebuildManagedFiles() {
389390
'serviceWorkerScript' => $this->getServiceWorkerScript($this->basePath . $this->manifest->metadata->site->name . '/'),
390391
'bodyAttrs' => $this->getSitePageAttributes(),
391392
'metadata' => $this->getSiteMetadata(),
392-
'lang' => "en", // @todo need to support language setting in site.json
393+
'lang' => $this->getLanguage(),
393394
'logo512x512' => $this->getLogoSize('512','512'),
394395
'logo256x256' => $this->getLogoSize('256','256'),
395396
'logo192x192' => $this->getLogoSize('192','192'),
@@ -754,7 +755,7 @@ public function updateAlternateFormats($format = NULL)
754755
@file_put_contents(
755756
$siteDirectory . 'legacy-outline.html',
756757
'<!DOCTYPE html>
757-
<html lang="en">
758+
<html lang="' . $this->getLanguage() . '">
758759
<head>
759760
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
760761
<meta content="utf-8" http-equiv="encoding">
@@ -956,6 +957,12 @@ public function getSocialShareImage($page = null) {
956957
public function getSitePageAttributes() {
957958
return 'vocab="http://schema.org/" prefix="oer:http://oerschema.org cc:http://creativecommons.org/ns dc:http://purl.org/dc/terms/"';
958959
}
960+
public function getLanguage() {
961+
if (isset($this->manifest->metadata->site->settings->lang) && $this->manifest->metadata->site->settings->lang != "" && $this->manifest->metadata->site->settings->lang != null) {
962+
return $this->manifest->metadata->site->settings->lang;
963+
}
964+
return "en-US";
965+
}
959966
/**
960967
* Return the base tag accurately which helps with the PWA / SW side of things
961968
* @return string HTML blob for hte <base> tag

system/backend/php/lib/Operations.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,7 @@ public function rebuildManagedFiles() {
378378
// MUST have this value to ensure it's the right site
379379
if (isset($site->manifest->metadata->site->name)) {
380380
$site->rebuildManagedFiles();
381+
$site->updateAlternateFormats();
381382
$return['managedFilesRebuilt'][] = $item;
382383
}
383384
}
@@ -393,6 +394,7 @@ public function rebuildManagedFiles() {
393394
}
394395
else {
395396
$site->rebuildManagedFiles();
397+
$site->updateAlternateFormats();
396398
$return['managedFilesRebuilt'][] = $this->params['site']['name'];
397399
}
398400
}
@@ -547,6 +549,12 @@ public function saveManifest() {
547549
FILTER_SANITIZE_STRING
548550
);
549551
}
552+
if (isset($this->params['manifest']['seo']['manifest-metadata-site-settings-lang'])) {
553+
$site->manifest->metadata->site->settings->lang = filter_var(
554+
$this->params['manifest']['seo']['manifest-metadata-site-settings-lang'],
555+
FILTER_SANITIZE_STRING
556+
);
557+
}
550558
if (isset($this->params['manifest']['seo']['manifest-metadata-site-settings-pathauto'])) {
551559
$site->manifest->metadata->site->settings->pathauto = filter_var(
552560
$this->params['manifest']['seo']['manifest-metadata-site-settings-pathauto'],
@@ -577,6 +585,7 @@ public function saveManifest() {
577585
$site->gitCommit('Manifest updated');
578586
// rebuild the files that twig processes
579587
$site->rebuildManagedFiles();
588+
$site->updateAlternateFormats();
580589
$site->gitCommit('Managed files updated');
581590
return $site->manifest;
582591
}
@@ -2061,7 +2070,7 @@ public function createSite() {
20612070
$cssvar = '--simple-colors-default-theme-light-blue-7';
20622071
}
20632072
$schema->metadata->theme->variables->cssVariable = $cssvar;
2064-
$schema->metadata->site->lang = 'en';
2073+
$schema->metadata->site->settings->lang = 'en';
20652074
$schema->metadata->site->created = time();
20662075
$schema->metadata->site->updated = time();
20672076
// check for publishing settings being set globally in HAXCMS

system/backend/php/lib/RSS.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function getRSSFeed($site)
2929
$domain .
3030
'</copyright>
3131
<language>' .
32-
$site->language .
32+
$site->getLanguage() .
3333
'</language>
3434
<lastBuildDate>' .
3535
date(\DateTime::RSS, $site->manifest->metadata->site->updated) .

system/boilerplate/site/index.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
$color = 'var(' . $site->manifest->metadata->theme->variables->cssVariable . ', #FF2222)';
1212
?>
1313
<!DOCTYPE html>
14-
<html lang="en">
14+
<html lang="<?php print $site->getLanguage(); ?>">
1515
<head>
1616
<?php print $site->getBaseTag(); ?>
1717
<?php print $site->getSiteMetadata($page); ?>

system/coreConfig/siteFields.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,12 @@
134134
"title": "SEO",
135135
"description": "Search engine and detailed internal path handling",
136136
"properties": [
137+
{
138+
"property": "manifest-metadata-site-settings-lang",
139+
"title": "Language",
140+
"description": "https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes for acceptable language codes.",
141+
"inputMethod": "textfield"
142+
},
137143
{
138144
"property": "manifest-metadata-site-settings-pathauto",
139145
"title": "Pathauto",

0 commit comments

Comments
 (0)