调整网站
This commit is contained in:
@@ -10,7 +10,7 @@ class CategoryController extends Controller
|
||||
|
||||
/**
|
||||
* 显示分类
|
||||
* @param Category $category [description]
|
||||
* @param Category $category [description]
|
||||
* @return [type] [description]
|
||||
*/
|
||||
public function index(Category $category)
|
||||
|
||||
@@ -41,7 +41,7 @@ img {max-width: 100%;}
|
||||
/* 轮播图 */
|
||||
.indexImg {background: url(../images/bannerBack.jpg) repeat-x center; height: 340px; overflow: hidden;}
|
||||
.indexImg-img {width: 100%;cursor: pointer; height: 340px;}
|
||||
.indexImg-title {position: absolute; z-index: 99; left: 0; bottom: 0; background-color: rgba(0,0,0,.5); width: 100%; color: #fff; padding: 10px 15px; box-sizing: border-box; font-size: 16px;}
|
||||
.indexImg-title {position: absolute; z-index: 99; left: 0; bottom: 0; background-color: rgba(0,0,0,.5); width: 100%; color: #fff; padding: 10px 100px 10px 15px; box-sizing: border-box; font-size: 16px;}
|
||||
.indexImg-pagination,
|
||||
.indexNews-pagination {text-align: right !important; padding-right: 20px !important;}
|
||||
.indexImg-pagination span.swiper-pagination-bullet {width: 11px; height: 11px; opacity: 1; background-color: #fff;}
|
||||
@@ -59,6 +59,10 @@ img {max-width: 100%;}
|
||||
.indexNews-ul-name {flex: 1; margin-right: 20px;}
|
||||
|
||||
/* 党政建设 */
|
||||
.indexBuild-new {width: 100%; text-align: center;border-radius: 10px;overflow: hidden;color: #fff; padding: 20px 30px; font-size: 20px; word-wrap:break-word;height: 190px; display: inline-block; background-color: #ba0013; box-sizing: border-box;}
|
||||
.indexBuild-new:hover {color: #fff;}
|
||||
.indexBuild-new .indexBuild-icon {border-color: #9a0211;}
|
||||
|
||||
.indexBuild {padding: 20px 0; background-color: #f7f7f7;}
|
||||
.indexBuild-list {overflow: hidden; margin: 10px -10px;}
|
||||
.indexBuild-list li {width: calc(50% - 20px); margin: 10px; float: left; text-align: center; border-radius: 10px; overflow: hidden; padding: 20px 0; height: 190px;}
|
||||
@@ -79,9 +83,15 @@ img {max-width: 100%;}
|
||||
.indexBuild-talent-title {padding: 0 10px; box-sizing: border-box; background-color: #ecf3f9; line-height: 40px; color: #016cd5; font-weight: 600; font-size: 18px; display: flex;}
|
||||
.indexBuild-talent-title span {display: inline-block; flex: 1;}
|
||||
.indexBuild-talent-title a{color: #005eb5; font-size: 16px;}
|
||||
.indexBuild-swiper {text-align: center; margin: 25px 0 10px; height: 100px; font-size: 16px;}
|
||||
.indexBuild-swiper span {color: #bdbdbd; padding-left: 30px;}
|
||||
.indexBuild-swiper,
|
||||
.indexBuildNew-swiper {text-align: center; margin: 25px 0 10px; height: 100px; font-size: 16px;}
|
||||
.indexBuild-swiper span,
|
||||
.indexBuildNew-swiper span {color: #bdbdbd; padding-left: 30px;}
|
||||
.indexNews-title {display: flex; border-bottom: 1px solid #e8e8e8; padding-bottom: 10px; margin-bottom: 20px;}
|
||||
.swiper-cont .swiper-container {
|
||||
width: 50%;
|
||||
float: left;
|
||||
}
|
||||
.indexNews-title-name {flex: 1; color: #ececec; line-height: 30px; display: flex; font-size: 20px; position: relative;}
|
||||
.indexNews-title-name::after,
|
||||
.indexNews-title-name::before {position: absolute; content: '';}
|
||||
@@ -175,7 +185,7 @@ img {max-width: 100%;}
|
||||
.indexTeam-content .tab-pane:nth-child(5)::before{left:1022px;}
|
||||
.indexTeam-content .tab-pane:nth-child(5)::after{left:1021px;}
|
||||
.indexTeam-ul {height: 400px; box-sizing: border-box;}
|
||||
.indexTeam-ul li {width: calc(33.33% - 40px); text-align: center; float: left; margin: 0 20px;box-shadow: 0 0 20px rgba(0,0,0,.1); height: 400px;overflow: hidden;}
|
||||
.indexTeam-ul li {width: calc(25% - 40px); text-align: center; float: left; margin: 0 20px;box-shadow: 0 0 20px rgba(0,0,0,.1); height: 400px;overflow: hidden;}
|
||||
.indexTeam-img {position: relative; width: 100%; padding-top: 70%;}
|
||||
.indexTeam-cont {padding: 0 40px; box-sizing: border-box; font-size: 16px; line-height: 28px;}
|
||||
.indexTeam-name {font-size: 18px; font-weight: 600; margin: 20px 0;}
|
||||
@@ -291,7 +301,8 @@ img {max-width: 100%;}
|
||||
.newBranch-img {position: relative; width: 100px; height: 80px; transition: .2s;}
|
||||
.newBranch li:hover .newBranch-img {transform: scale(1.1);}
|
||||
.newBranch-cont {position: absolute; left: 0; top: 0; width: 100%; padding-left: 100px; box-sizing: border-box; padding-right: 20px; display: flex;}
|
||||
.newBranch-time {text-align: center; margin: 8px 15px; font-size: 16px;}
|
||||
.newBranch-time {text-align: center; margin: 8px 15px; font-size: 16px; width: 80px;}
|
||||
.newBranch-text {width: calc(100% - 110px);}
|
||||
.newBranch-time>span {font-size: 30px;}
|
||||
.newBranch-name {font-size: 18px; margin-bottom: 10px;}
|
||||
.newBranch-tips {height: 44px; line-height: 22px; color: #6d6c6c;}
|
||||
@@ -400,8 +411,17 @@ img {max-width: 100%;}
|
||||
|
||||
/* 漂浮的工具栏 */
|
||||
.laytool { position: fixed; top: 45vh; left: calc(50% + 615px); z-index: 99; }
|
||||
.laytool-ul li { position: relative; margin-bottom: 5px; width: 40px; height: 40px; line-height: 40px; text-align: center; background-image: url(../images/z19_scroll_wx.png); background-repeat: no-repeat; background-size: cover; background-position: center; font-size: 18px; transition: background .3s; border-radius: 5px;}
|
||||
.laytool-ul li { position: relative; margin-bottom: 5px; width: 40px; height: 40px; line-height: 40px; text-align: center; background-image: url(../images/z19_scroll_wx.png); background-repeat: no-repeat; background-size: cover; background-position: center; font-size: 18px; transition: background .3s; border-radius: 5px; cursor: pointer;}
|
||||
.wechat-code { position: absolute; left: -305px; top: -169px; width: 300px; height: 379px; display: none; }
|
||||
.wechat-code img { width: 100%; vertical-align: top; }
|
||||
.laytool-ul i { color: white;}
|
||||
.laytool-ul li:hover .wechat-code { display: block;}
|
||||
|
||||
/*列表新增样式*/
|
||||
.dateExtend {margin-top: 30px;}
|
||||
.dateExtend a {display: flex; margin-bottom: 20px; border-bottom: 1px dashed #e6e6e6; padding-bottom: 20px; transition: .2s;}
|
||||
.dateExtend-left {width: 70px; text-align: right; padding: 10px 10px 10px 0; box-sizing: border-box;background-color: transparent;}
|
||||
.dateExtend-left span {display: block; font-size: 20px; font-weight: 600;}
|
||||
.dateExtend a:hover .dateExtend-left {background-color: #203175; color: #fff;}
|
||||
.dateExtend-right {width: calc(100% - 90px); margin-left: 20px; padding-top: 10px;}
|
||||
.dateExtend-right .indexExtend-ul-name {margin-bottom: 0;}
|
||||
|
||||
@@ -3,73 +3,51 @@
|
||||
@section('title', '首页')
|
||||
|
||||
@section('content')
|
||||
<!-- mian -->
|
||||
<div class="container child">
|
||||
<!-- 侧边导航 -->
|
||||
<div class="child-nav">
|
||||
<div class="kj-bjt">
|
||||
<b>{{ $parent->title }}</b>
|
||||
<p>Exchange and cooperation</p>
|
||||
</div>
|
||||
<ul class="child-nav-ul">
|
||||
@if ($parent->childrens->isNotEmpty())
|
||||
@foreach ($parent->childrens as $child)
|
||||
<!-- 科学研究 -->
|
||||
<div class="survey" style="background-image: url(/assets/index/images/studyBack.png);">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
@include('category.left')
|
||||
<div class="col-xs-12 col-md-9 secondRight">
|
||||
<!-- 科研动态 -->
|
||||
<div class="surveyCont">
|
||||
<div class="secondTop">
|
||||
<div class="secondTop-name">
|
||||
<img src="/assets/index/images/studyIcon_00.png"/>
|
||||
{{ $category->title }}
|
||||
</div>
|
||||
</div>
|
||||
<ul class="dateExtend">
|
||||
@if ($articles->isNotEmpty())
|
||||
@foreach ($articles as $article)
|
||||
<li>
|
||||
<a href="{{ $child->link }}" @if($category->id==$child->id) class="show" @endif>{{ $child->title }}</a>
|
||||
<a href="">
|
||||
<div class="dateExtend-left">
|
||||
<span>06/01</span>
|
||||
2021
|
||||
</div>
|
||||
<div class="dateExtend-right">
|
||||
<div class="ce-nowrap indexExtend-ul-name">
|
||||
{{ $article->title }}
|
||||
</div>
|
||||
<div class="ce-nowrap indexExtend-ul-text">
|
||||
{{ $article->description }}
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
<!-- content -->
|
||||
<div class="child-content">
|
||||
<ul class="party-ul list-ul">
|
||||
<li class="party-ul-li">
|
||||
<a href="#">
|
||||
<span class="party-time">
|
||||
<h3>09</h3>
|
||||
<p>2020-05</p>
|
||||
</span>
|
||||
<h3 class="party-title nowrap">创新团队</h3>
|
||||
<p class="party-info nowrap-multi">新华社北京7月25日电
|
||||
为引领推动我国印刷业高质量发展,由国家新闻出版署主办的2019中国印刷业创新大会25日在京开幕。</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="party-ul-li">
|
||||
<a href="#">
|
||||
<span class="party-time">
|
||||
<h3>09</h3>
|
||||
<p>2020-05</p>
|
||||
</span>
|
||||
<h3 class="party-title nowrap">创新团队</h3>
|
||||
<p class="party-info nowrap-multi">新华社北京7月25日电
|
||||
为引领推动我国印刷业高质量发展,由国家新闻出版署主办的2019中国印刷业创新大会25日在京开幕。</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="party-ul-li">
|
||||
<a href="#">
|
||||
<span class="party-time">
|
||||
<h3>09</h3>
|
||||
<p>2020-05</p>
|
||||
</span>
|
||||
<h3 class="party-title nowrap">创新团队</h3>
|
||||
<p class="party-info nowrap-multi">新华社北京7月25日电
|
||||
为引领推动我国印刷业高质量发展,由国家新闻出版署主办的2019中国印刷业创新大会25日在京开幕。</p>
|
||||
</a>
|
||||
</li>
|
||||
<li class="party-ul-li">
|
||||
<a href="#">
|
||||
<span class="party-time">
|
||||
<h3>09</h3>
|
||||
<p>2020-05</p>
|
||||
</span>
|
||||
<h3 class="party-title nowrap">创新团队</h3>
|
||||
<p class="party-info nowrap-multi">新华社北京7月25日电
|
||||
为引领推动我国印刷业高质量发展,由国家新闻出版署主办的2019中国印刷业创新大会25日在京开幕。</p>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@endforeach
|
||||
@endif
|
||||
</ul>
|
||||
|
||||
<!-- 分页 -->
|
||||
|
||||
@if ($articles->isNotEmpty())
|
||||
{{ $articles->links('layouts.pagination') }}
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end mian -->
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -109,25 +109,49 @@
|
||||
<span>{{ getOneCategory(28,'title') }}</span>
|
||||
<a href="{{ getOneCategory(28,'link') }}">MORE</a>
|
||||
</div>
|
||||
<div class="swiper-container indexBuild-swiper">
|
||||
<div class="swiper-wrapper">
|
||||
@if (getArticlesBYCate(28,8)->isNotEmpty())
|
||||
@foreach (getArticlesBYCate(28,8) as $article)
|
||||
<div class="swiper-slide">{{ $article->title }}
|
||||
<span>{{ $article->description }}</span>
|
||||
</div>
|
||||
@endforeach
|
||||
@endif
|
||||
<div class="swiper-cont">
|
||||
<div class="swiper-container indexBuild-swiper">
|
||||
<div class="swiper-wrapper">
|
||||
@if (getArticlesBYCate(28,8)->isNotEmpty())
|
||||
@foreach (getArticlesBYCate(28,8) as $article)
|
||||
@if($loop->index < 3)
|
||||
<div class="swiper-slide">
|
||||
{{ $article->title }}
|
||||
<span>{{ $article->description }}</span>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="swiper-cont">
|
||||
<div class="swiper-container indexBuildNew-swiper">
|
||||
<div class="swiper-wrapper">
|
||||
@if (getArticlesBYCate(28,8)->isNotEmpty())
|
||||
@foreach (getArticlesBYCate(28,8) as $article)
|
||||
@if($loop->index >= 3)
|
||||
<div class="swiper-slide">
|
||||
{{ $article->title }}
|
||||
<span>{{ $article->description }}</span>
|
||||
</div>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{-- 梯队人才下边--}}
|
||||
@if (getArticlesBYCate(24,5,'all',false,'asc')->isNotEmpty())
|
||||
@foreach (getArticlesBYCate(24,5) as $article)
|
||||
@if($loop->index==4)
|
||||
<a href="{{ $article->link }}" class="indexBuild-back" title="{{ $article->title }}">
|
||||
<img src="{{ $article->cover_path }}">
|
||||
<a href="{{ $article->link }}" class="indexBuild-new" title="{{ $article->title }}">
|
||||
<div class="indexBuild-icon">
|
||||
<img src="/assets/index/images/Build_icon05.png">
|
||||
</div>
|
||||
{{ $article->title }}
|
||||
<!-- <img src="{{ $article->cover_path }}"> -->
|
||||
</a>
|
||||
@endif
|
||||
@endforeach
|
||||
@@ -220,23 +244,23 @@
|
||||
<div class="indexMedia-title">
|
||||
<div class="indexMedia-name">
|
||||
<img src="assets/index/images/partyIcon_00.png"/>
|
||||
{{ getOneCategory(11,'title') }}
|
||||
{{ getOneCategory(17,'title') }}
|
||||
</div>
|
||||
<img src="assets/index/images/partyIcon_00.png"/>
|
||||
</div>
|
||||
<div class="indexMedia-cont">
|
||||
<div class="ce-img indexMedia-img">
|
||||
<span style="background-image: url({{ getOneArticleBYCate(11,'cover_path') }});"></span>
|
||||
<span style="background-image: url({{ getOneArticleBYCate(17,'cover_path') }});"></span>
|
||||
<img src="assets/index/images/partyIcon_03.png">
|
||||
</div>
|
||||
<div class="indexMedia-essay">
|
||||
<div class="ce-nowrap-multi indexMedia-head">
|
||||
{{ getOneArticleBYCate(11,'title') }}
|
||||
{{ getOneArticleBYCate(17,'title') }}
|
||||
</div>
|
||||
<div class="ce-nowrap-multi indexMedia-text">
|
||||
{{ getOneArticleBYCate(11,'description') }}
|
||||
{{ getOneArticleBYCate(17,'description') }}
|
||||
</div>
|
||||
<a class="indexMedia-more" href="{{ getOneCategory(11,'link') }}">MORE</a>
|
||||
<a class="indexMedia-more" href="{{ getOneCategory(17,'link') }}">MORE</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -339,8 +363,8 @@
|
||||
<!-- 创新团队 -->
|
||||
<div role="screen-1" class="tab-pane fade active in" id="screen-1">
|
||||
<ul class="indexTeam-ul">
|
||||
@if (getArticlesBYCate(27,3)->isNotEmpty())
|
||||
@foreach (getArticlesBYCate(27,3) as $article)
|
||||
@if (getArticlesBYCate(27,4)->isNotEmpty())
|
||||
@foreach (getArticlesBYCate(27,4) as $article)
|
||||
<li>
|
||||
<a href="{{ $article->link }}" title="{{ $article->title }}">
|
||||
<div class="ce-img indexTeam-img">
|
||||
@@ -487,7 +511,7 @@
|
||||
autoplayDisableOnInteraction: false
|
||||
});
|
||||
|
||||
// 梯队人才
|
||||
// 梯队人才1
|
||||
var mySwiper = new Swiper('.indexBuild-swiper', {
|
||||
direction: 'vertical',
|
||||
slidesPerView: 2,
|
||||
@@ -496,6 +520,15 @@
|
||||
autoplay: 2000
|
||||
});
|
||||
|
||||
// 梯队人才2
|
||||
var mySwiper1 = new Swiper('.indexBuildNew-swiper', {
|
||||
direction: 'vertical',
|
||||
slidesPerView: 2,
|
||||
spaceBetween: 10,
|
||||
speed: 1000, // 速度
|
||||
autoplay: 2000
|
||||
});
|
||||
|
||||
// 获得奖项
|
||||
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
|
||||
var mySwiper = new Swiper('.indexPrize-swiper', {
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xs-8 col-md-9 indexHead-nav">
|
||||
<a href="#"><img src="/assets/index/images/collectIcon.png"/>加入收藏</a>
|
||||
<a href="#" style="margin-left: 20px;"><img src="/assets/index/images/websiteIcon.png"/>院所网站</a>
|
||||
<!-- <a href="#"><img src="/assets/index/images/collectIcon.png"/>加入收藏</a> -->
|
||||
<!-- <a href="#" style="margin-left: 20px;"><img src="/assets/index/images/websiteIcon.png"/>院所网站</a> -->
|
||||
</div>
|
||||
<form class="tool-search" action="{{ route('article.search') }}">
|
||||
<div class="col-xs-4 col-md-3 indexHead-search">
|
||||
|
||||
103
resources/views/layouts/master.blade.php
Normal file
103
resources/views/layouts/master.blade.php
Normal file
@@ -0,0 +1,103 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{{ config('app.name', '') }}</title>
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('assets/new_theme/css/bootstrap.min.css') }}"/>
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('assets/new_theme/css/style.css') }}"/>
|
||||
<link rel="stylesheet" type="text/css" href="{{ asset('assets/new_theme/css/swiper.min.css') }}"/>
|
||||
</head>
|
||||
|
||||
<body oncontextmenu='return false' ondragstart='return false' onselectstart='return false' onselect='document.selection.empty()' oncopy='document.selection.empty()' onbeforecopy='return false' onmouseup='document.selection.empty()'>
|
||||
<!-- 顶部 -->
|
||||
<div class="indexHead">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xs-8 col-md-9 indexHead-nav">
|
||||
<a href="#"><img src="new-theme-assets/images/collectIcon.png"/>加入收藏</a>
|
||||
<a href="#" style="margin-left: 20px;"><img src="new-theme-assets/images/websiteIcon.png"/>院所网站</a>
|
||||
</div>
|
||||
<form class="tool-search" action="{{ route('article.search') }}">
|
||||
<div class="col-xs-4 col-md-3 indexHead-search">
|
||||
<input type="text" name="title" value="" placeholder="请输入..."/>
|
||||
<button type="submit">搜索</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 导航 -->
|
||||
<div class="indexNav">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-4 indexNav-logo">
|
||||
<a href="/"><img src="/new-theme-assets/images/logo.png"/></a>
|
||||
</div>
|
||||
<ul class="col-xs-12 col-md-8 indexNav-nav">
|
||||
<li @if (!isset($parent)) class="active" @endif><a href="/">网站首页</a></li>
|
||||
@foreach ($all_categorys as $cate)
|
||||
<li @if (isset($parent) && $cate->id==$parent->id) class="active" @endif
|
||||
><a href="{{ route('category.show',$cate) }}">{{ $cate->title }}</a></li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 日期 -->
|
||||
<div class="indexDate">
|
||||
<div class="container">
|
||||
今天是 {{ now()->isoFormat('Y年M月D日 a h:mm:ss') }} {{ now()->get('dayName') }}
|
||||
</div>
|
||||
</div>
|
||||
@section('content')
|
||||
|
||||
@show
|
||||
<script src="{{ asset('assets/new_theme/js/jquery-3.2.1.min.js') }}" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="{{ asset('assets/new_theme/js/bootstrap.min.js') }}" type="text/javascript" charset="utf-8"></script>
|
||||
<script src="{{ asset('assets/new_theme/js/swiper.min.js') }}" type="text/javascript" charset="utf-8"></script>
|
||||
|
||||
<!-- 友情链接 -->
|
||||
<div class="link">
|
||||
<div class="container">
|
||||
<div class="linkTitle">
|
||||
<span>友情链接</span>/ Links
|
||||
</div>
|
||||
<ul class="linkUl">
|
||||
@if ($links->isNotEmpty())
|
||||
@foreach ($links as $link)
|
||||
<li><a href="{{ $link->url }}">{{ $link->title}}</a></li>
|
||||
@endforeach
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 底部菜单 -->
|
||||
<div class="footer">
|
||||
<div class="container">
|
||||
<ul class="footerList">
|
||||
<li>
|
||||
黑龙江省科学院大庆分院 版权所有 (C)2012 All Right Reserved Power by DedeCms
|
||||
</li>
|
||||
<li>
|
||||
<span>地址:黑龙江省大庆高新区博学大街45号</span>
|
||||
<span>黑ICP备1000001号</span>
|
||||
</li>
|
||||
<li>
|
||||
<span>邮箱:hkydqyb@126.com</span>
|
||||
<span>电话:086-459-8998866</span>
|
||||
<span>传真:086-459-8998866</span>
|
||||
<span>邮编:163319</span>
|
||||
</li>
|
||||
</ul>
|
||||
<img src="{{ asset('assets/new_theme/images/blue.png') }}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@stack('script')
|
||||
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user