diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php index 414650d21..878a9991f 100755 --- a/resources/lang/en/settings.php +++ b/resources/lang/en/settings.php @@ -37,6 +37,10 @@ return [ 'app_homepage' => 'Application Homepage', 'app_homepage_desc' => 'Select a view to show on the homepage instead of the default view. Page permissions are ignored for selected pages.', 'app_homepage_select' => 'Select a page', + 'app_footer_links' => 'Footer Links', + 'app_footer_links_desc' => 'Certain countries may require that websites include a privacy policy or terms of service. You may provide links to those here, which will then be displayed at the bottom of each page.', + 'app_privacy_policy' => 'Privacy Policy', + 'app_terms_of_service' => 'Terms of Service', 'app_disable_comments' => 'Disable Comments', 'app_disable_comments_toggle' => 'Disable comments', 'app_disable_comments_desc' => 'Disables comments across all pages in the application. <br> Existing comments are not shown.', diff --git a/resources/sass/_footer.scss b/resources/sass/_footer.scss new file mode 100644 index 000000000..960911584 --- /dev/null +++ b/resources/sass/_footer.scss @@ -0,0 +1,17 @@ +/** + * Includes the footer links. + */ + + footer { + flex-shrink: 0; + padding: .5em; + text-align: center; + } + + footer a { + margin: 0 .5em; + } + + body.flexbox footer { + display: none; + } \ No newline at end of file diff --git a/resources/sass/_html.scss b/resources/sass/_html.scss index 57869d652..026295669 100644 --- a/resources/sass/_html.scss +++ b/resources/sass/_html.scss @@ -25,4 +25,8 @@ body { line-height: 1.6; @include lightDark(color, #444, #AAA); -webkit-font-smoothing: antialiased; -} \ No newline at end of file + background-color: #F2F2F2; + height: 100%; + display: flex; + flex-direction: column; +} diff --git a/resources/sass/_layout.scss b/resources/sass/_layout.scss index 4873ff2da..c12cae256 100644 --- a/resources/sass/_layout.scss +++ b/resources/sass/_layout.scss @@ -95,6 +95,10 @@ } } +#content { + flex: 1 0 auto; +} + /** * Flexbox layout system */ diff --git a/resources/sass/styles.scss b/resources/sass/styles.scss index 78d94f977..614b7f295 100644 --- a/resources/sass/styles.scss +++ b/resources/sass/styles.scss @@ -15,6 +15,7 @@ @import "codemirror"; @import "components"; @import "header"; +@import "footer"; @import "lists"; @import "pages"; diff --git a/resources/views/base.blade.php b/resources/views/base.blade.php index a5404a365..29e4acee7 100644 --- a/resources/views/base.blade.php +++ b/resources/views/base.blade.php @@ -35,6 +35,8 @@ @yield('content') </div> + @include('common.footer') + <div back-to-top class="primary-background print-hidden"> <div class="inner"> @icon('chevron-up') <span>{{ trans('common.back_to_top') }}</span> diff --git a/resources/views/common/footer.blade.php b/resources/views/common/footer.blade.php new file mode 100644 index 000000000..a056f6d99 --- /dev/null +++ b/resources/views/common/footer.blade.php @@ -0,0 +1,10 @@ +@if(setting('app-privacy-policy') | setting('app-terms-of-service')) +<footer> + @if(setting('app-privacy-policy')) + <a href="{{ setting('app-privacy-policy') }}">{{ trans('settings.app_privacy_policy') }}</a> + @endif + @if(setting('app-terms-of-service')) + <a href="{{ setting('app-terms-of-service') }}">{{ trans('settings.app_terms_of_service') }}</a> + @endif +</footer> +@endif \ No newline at end of file diff --git a/resources/views/settings/index.blade.php b/resources/views/settings/index.blade.php index 8adc1045b..34d3cad92 100644 --- a/resources/views/settings/index.blade.php +++ b/resources/views/settings/index.blade.php @@ -179,6 +179,21 @@ </div> </div> + <div> + <label for="setting-app-privacy-link" class="setting-list-label">{{ trans('settings.app_footer_links') }}</label> + <p class="small">{{ trans('settings.app_footer_links_desc') }}</p> + <div class="grid half pt-m"> + <div> + <label for="setting-app-privacy-policy" class="text-dark">{{ trans('settings.app_privacy_policy') }}</label> + <input type="text" value="{{ setting('app-privacy-policy', '') }}" name="setting-app-privacy-policy" id="setting-app-privacy-policy"> + </div> + <div> + <label for="setting-app-terms-of-service" class="text-dark">{{ trans('settings.app_terms_of_service') }}</label> + <input type="text" value="{{ setting('app-terms-of-service', '') }}" name="setting-app-terms-of-service" id="setting-app-terms-of-service"> + </div> + </div> + </div> + <div> <label for="setting-app-custom-head" class="setting-list-label">{{ trans('settings.app_custom_html') }}</label>