Initial commit
BIN
resources/.DS_Store
vendored
Normal file
BIN
resources/assets/.DS_Store
vendored
Normal file
157
resources/assets/css/iconfont.css
Normal file
0
resources/assets/css/index.html
Normal file
519
resources/assets/css/stui_block.css
Normal file
@@ -0,0 +1,519 @@
|
||||
/*!
|
||||
* v3.0 Copyright http://v.shoutu.cn
|
||||
* email 726662013@qq.com
|
||||
*/
|
||||
|
||||
@charset "utf-8";
|
||||
|
||||
/* all */
|
||||
body, html{width:100%;}
|
||||
body{ margin: 0; font-family:"Roboto", sans-serif; font-size:14px; line-height: 140%}
|
||||
ul,ol,li,p,h1,h2,h3,h4,h5,h6,form,fieldset,table,td,img,tr,dl,dd,dt{margin:0;padding:0; font-weight:normal}
|
||||
input,select{font-size:12px;vertical-align:middle; border:none;}
|
||||
ul,li{list-style-type:none;}
|
||||
img{border:0 none;}
|
||||
p{margin:0 0 10px;}
|
||||
|
||||
/* container */
|
||||
*{-webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box}
|
||||
:after,:before{-webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box}
|
||||
.container {position: relative; padding-right: 15px; padding-left: 15px; margin-right: auto; margin-left: auto;}
|
||||
.row{position: relative; margin-right: -15px; margin-left: -15px;}
|
||||
.container:before,.container:after,.row:before,.row:after,.clearfix:before, .clearfix:after{ display: table; content: " "; clear: both;}
|
||||
|
||||
/* col */
|
||||
.col-pd,.col-lg-1,.col-lg-10,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding:10px}.col-xs-1,.col-xs-10,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-wide-1,.col-xs-wide-10,.col-xs-wide-15,.col-xs-wide-2,.col-xs-wide-25,.col-xs-wide-3,.col-xs-wide-35,.col-xs-wide-4,.col-xs-wide-45,.col-xs-wide-5,.col-xs-wide-55,.col-xs-wide-6,.col-xs-wide-65,.col-xs-wide-7,.col-xs-wide-75,.col-xs-wide-8,.col-xs-wide-85,.col-xs-wide-9,.col-xs-wide-95{float:left}.col-xs-10{width:10%}.col-xs-9{width:11.1111111%}.col-xs-8{width:12.5%}.col-xs-7{width:14.2857143%}.col-xs-6{width:16.6666667%}.col-xs-5{width:20%}.col-xs-4{width:25%}.col-xs-3{width:33.3333333%}.col-xs-2{width:50%}.col-xs-1{width:100%}.col-xs-wide-10{width:10%}.col-xs-wide-9{width:90%}.col-xs-wide-8{width:80%}.col-xs-wide-7{width:70%}.col-xs-wide-6{width:60%}.col-xs-wide-5{width:50%}.col-xs-wide-4{width:40%}.col-xs-wide-3{width:30%}.col-xs-wide-2{width:20%}.col-xs-wide-15{width:15%}.col-xs-wide-95{width:95%}.col-xs-wide-85{width:85%}.col-xs-wide-75{width:75%}.col-xs-wide-65{width:65%}.col-xs-wide-55{width:55%}.col-xs-wide-45{width:45%}.col-xs-wide-35{width:35%}.col-xs-wide-25{width:25%}
|
||||
|
||||
@media (min-width: 768px){
|
||||
.col-sm-1,.col-sm-10,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-wide-1,.col-sm-wide-10,.col-sm-wide-15,.col-sm-wide-2,.col-sm-wide-25,.col-sm-wide-3,.col-sm-wide-35,.col-sm-wide-4,.col-sm-wide-45,.col-sm-wide-5,.col-sm-wide-55,.col-sm-wide-6,.col-sm-wide-65,.col-sm-wide-7,.col-sm-wide-75,.col-sm-wide-8,.col-sm-wide-85,.col-sm-wide-9,.col-sm-wide-95{float:left}.col-sm-10{width:10%}.col-sm-9{width:11.1111111%}.col-sm-8{width:12.5%}.col-sm-7{width:14.2857143%}.col-sm-6{width:16.6666667%}.col-sm-5{width:20%}.col-sm-4{width:25%}.col-sm-3{width:33.3333333%}.col-sm-2{width:50%}.col-sm-1{width:100%}.col-sm-wide-10{width:10%}.col-sm-wide-9{width:90%}.col-sm-wide-8{width:80%}.col-sm-wide-7{width:70%}.col-sm-wide-6{width:60%}.col-sm-wide-5{width:50%}.col-sm-wide-4{width:40%}.col-sm-wide-3{width:30%}.col-sm-wide-2{width:20%}.col-sm-wide-15{width:15%}.col-sm-wide-95{width:95%}.col-sm-wide-85{width:85%}.col-sm-wide-75{width:75%}.col-sm-wide-65{width:65%}.col-sm-wide-55{width:55%}.col-sm-wide-45{width:45%}.col-sm-wide-35{width:35%}.col-sm-wide-25{width:25%}}
|
||||
|
||||
@media (min-width: 992px){
|
||||
.col-md-1,.col-md-10,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-wide-1,.col-md-wide-10,.col-md-wide-15,.col-md-wide-2,.col-md-wide-25,.col-md-wide-3,.col-md-wide-35,.col-md-wide-4,.col-md-wide-45,.col-md-wide-5,.col-md-wide-55,.col-md-wide-6,.col-md-wide-65,.col-md-wide-7,.col-md-wide-75,.col-md-wide-8,.col-md-wide-85,.col-md-wide-9,.col-md-wide-95{float:left}.col-md-10{width:10%}.col-md-9{width:11.1111111%}.col-md-8{width:12.5%}.col-md-7{width:14.2857143%}.col-md-6{width:16.6666667%}.col-md-5{width:20%}.col-md-4{width:25%}.col-md-3{width:33.3333333%}.col-md-2{width:50%}.col-md-1{width:100%}.col-md-wide-10{width:10%}.col-md-wide-9{width:90%}.col-md-wide-8{width:80%}.col-md-wide-7{width:70%}.col-md-wide-6{width:60%}.col-md-wide-5{width:50%}.col-md-wide-4{width:40%}.col-md-wide-3{width:30%}.col-md-wide-2{width:20%}.col-md-wide-15{width:15%}.col-md-wide-95{width:95%}.col-md-wide-85{width:85%}.col-md-wide-75{width:75%}.col-md-wide-65{width:65%}.col-md-wide-55{width:55%}.col-md-wide-45{width:45%}.col-md-wide-35{width:35%}.col-md-wide-25{width:25%}}
|
||||
|
||||
@media (min-width: 1200px){
|
||||
.col-lg-1,.col-lg-10,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-wide-1,.col-lg-wide-10,.col-lg-wide-15,.col-lg-wide-2,.col-lg-wide-25,.col-lg-wide-3,.col-lg-wide-35,.col-lg-wide-4,.col-lg-wide-45,.col-lg-wide-5,.col-lg-wide-55,.col-lg-wide-6,.col-lg-wide-65,.col-lg-wide-7,.col-lg-wide-75,.col-lg-wide-8,.col-lg-wide-85,.col-lg-wide-9,.col-lg-wide-95{float:left}.col-lg-10{width:10%}.col-lg-9{width:11.1111111%}.col-lg-8{width:12.5%}.col-lg-7{width:14.2857143%}.col-lg-6{width:16.6666667%}.col-lg-5{width:20%}.col-lg-4{width:25%}.col-lg-3{width:33.3333333%}.col-lg-2{width:50%}.col-lg-1{width:100%}.col-lg-wide-10{width:10%}.col-lg-wide-9{width:90%}.col-lg-wide-8{width:80%}.col-lg-wide-7{width:70%}.col-lg-wide-6{width:60%}.col-lg-wide-5{width:50%}.col-lg-wide-4{width:40%}.col-lg-wide-3{width:30%}.col-lg-wide-2{width:20%}.col-lg-wide-15{width:15%}.col-lg-wide-95{width:95%}.col-lg-wide-85{width:85%}.col-lg-wide-75{width:75%}.col-lg-wide-65{width:65%}.col-lg-wide-55{width:55%}.col-lg-wide-45{width:45%}.col-lg-wide-35{width:35%}.col-lg-wide-25{width:25%}}
|
||||
|
||||
@media (max-width: 767px){[class*=col-]{padding:5px}}
|
||||
|
||||
/* text */
|
||||
h1{ font-size:22px; line-height: 28px;}
|
||||
h2{ font-size:20px; line-height: 26px;}
|
||||
h3{ font-size:18px; line-height: 24px;}
|
||||
h4{ font-size:16px; line-height: 22px;}
|
||||
h5{ font-size:14px; line-height: 20px;}
|
||||
h6{ font-size:12px; line-height: 18px;}
|
||||
h1,h2,h3,h4,h5,h6{ font-weight: 400; margin-top:10px; margin-bottom:10px}
|
||||
a,button{ text-decoration:none; outline:none; -webkit-tap-highlight-color:rgba(0,0,0,0)}
|
||||
button:hover{ cursor: pointer;}
|
||||
a:focus,a:hover,a:active{ text-decoration:none;}
|
||||
.icon{ font-size: 16px; vertical-align: -1px;}
|
||||
.font-16{ font-size: 16px;}
|
||||
.font-14{ font-size: 14px;}
|
||||
.font-12{ font-size: 12px;}
|
||||
.text-center{ text-align: center;}
|
||||
.text-left{ text-align: left;}
|
||||
.text-right{ text-align: right;}
|
||||
.text-overflow{ width:100%; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap;}
|
||||
|
||||
/* img */
|
||||
img{border: 0; vertical-align:middle}
|
||||
.img-circle{ border-radius: 50%;}
|
||||
.img-rounded{ border-radius: 5px;}
|
||||
.img-thumbnail{ padding: 5px; border-radius: 5px;}
|
||||
.img-responsive{ max-width: 100%;}
|
||||
|
||||
/* form */
|
||||
input,textarea{outline: medium none; outline: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0);}
|
||||
input.form-control,input.btn{ outline:0px; -webkit-appearance: none;}
|
||||
input[type="checkbox"]{ vertical-align: -2px;}
|
||||
.form-control{display:block; width:100%; height:30px; padding: 10px; font-size:12px; line-height: 25px; border-radius:4px; transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;}
|
||||
textarea.form-control{ height: auto;}
|
||||
.input-list{ margin-bottom: 20px;}
|
||||
.input-list li{ padding: 10px 20px;}
|
||||
.input-list li input.form-control{ height: 40px;}
|
||||
#form-filter .form-control{padding: 5px;}
|
||||
|
||||
/* line */
|
||||
.split-line{display: inline-block; margin-left: 12px; margin-right: 12px; width: 1px; height: 14px; vertical-align: -2px;}
|
||||
.top-line,.top-line-dot,.bottom-line,.bottom-line-dot{ position: relative;}
|
||||
.top-line:before,.top-line-dot:before{content: " "; position: absolute; left: 0; top: 0; right: 0; width: 100%; height: 1px;}
|
||||
.bottom-line:after,.bottom-line-dot:before{content: " "; position: absolute; left: 0; bottom: 0; right: 0; width: 100%; height: 1px;}
|
||||
|
||||
/* badge */
|
||||
.badge{display: inline-block; margin-right: 10px; width: 18px; height: 18px; text-align: center; line-height: 18px; border-radius: 2px; font-size: 12px;}
|
||||
.badge-radius{ border-radius: 50%;}
|
||||
|
||||
/* btn */
|
||||
.btn{display: inline-block; padding: 6px 30px; font-size: 12px; border-radius: 4px;}
|
||||
.btn .icon{ font-size: 12px;}
|
||||
.btn-min{ padding: 4px 15px;}
|
||||
.btn-lg{ padding: 12px 30px;}
|
||||
.btn-block{ display: block; width: 100%; text-align: center;}
|
||||
.btn.disabled{cursor: not-allowed;}
|
||||
|
||||
/* tag */
|
||||
.tag{ padding-left: 10px;}
|
||||
.tag li{ float: left;}
|
||||
.tag-btn,.tag-type{ padding-top: 10px; padding-left: 10px;}
|
||||
.tag-btn li ,.tag-type li{ padding:0 10px 10px 0;}
|
||||
.tag-btn li a ,.tag-type li a{ display: block; padding:0 10px; height: 30px; line-height: 30px; text-align: center; font-size: 12px; border-radius: 2px;}
|
||||
.tag-btn.active li a,.tag-type.active li a{ border-radius: 14px;}
|
||||
.tag-text li{ padding-right: 10px; padding-bottom: 10px;}
|
||||
|
||||
/* nav */
|
||||
.nav{ height: 30px;}
|
||||
.nav > li{ float: left;}
|
||||
.nav-head > li{ margin-top: 5px; margin-right: 30px;}
|
||||
.nav-head > li > a{ padding-bottom: 12px; font-size: 16px;}
|
||||
.nav-tabs > li{margin-left: 30px;}
|
||||
.nav-tabs > li > a{display: inline-block; padding: 8px 0 10px;}
|
||||
.nav-tag > li{ margin-left: 10px;}
|
||||
.nav-tag > li > a{ display: inline-block; padding:0 10px; height: 25px; line-height: 23px; font-size: 12px; border-radius: 20px;}
|
||||
.nav-text > li{line-height: 30px;}
|
||||
.nav-text > li.active > a{ color: #f80;}
|
||||
.nav-page{ margin-left: 10px;}
|
||||
.nav-page > li{ margin-left: 5px;}
|
||||
.nav-page > li > a{ display: inline-block; font-size: 12px; padding: 0 6px; height: 25px; line-height: 23px;}
|
||||
.nav-page > li > a > .icon{ font-size: 12px;}
|
||||
.nav-page > li:first-child{ margin-left: 0;}
|
||||
.nav-page > li:first-child > a{ border-radius: 4px 0 0 4px;}
|
||||
.nav-page > li:last-child > a{ border-radius: 0 4px 4px 0;}
|
||||
|
||||
/* pic-tag */
|
||||
.pic-tag{ position: absolute; z-index: 99; padding:2px 5px; font-size: 12px; border-radius: 2px;}
|
||||
.pic-tag-t{top: 5px; left: 5px;}
|
||||
.pic-tag-l{bottom: 5px; left: 5px;}
|
||||
.pic-tag-b{bottom: 5px; right: 5px;}
|
||||
.pic-tag-r{top: 5px; right: 5px;}
|
||||
.pic-tag-h{left: 0; top: 0; padding:2px 8px; border-radius: 0 0 8px 0;}
|
||||
.pic-tag-lg{ padding: 4px 10px;}
|
||||
.pic-text{display: block; width: 100%; position: absolute; bottom: 0; left: 0; padding:5px 10px; font-size: 12px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap;}
|
||||
.pic-text-silde{ padding-bottom: 20px; font-size: 14px;}
|
||||
.pic-text-lg{ padding: 8px 20px; font-size: 14px;}
|
||||
.pic-title-t{display: block; width: 100%; position: absolute; top: 0; left: 0; padding:5px 10px 10px; font-size: 12px; word-break:break-all; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
|
||||
.pic-title-b{display: block; width: 100%; position: absolute; bottom: 0; left: 0; padding:5px 10px; font-size: 12px; word-break:break-all; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}
|
||||
|
||||
/* pannel */
|
||||
.stui-pannel{position: relative; margin-bottom: 20px;}
|
||||
.stui-pannel.stui-pannel-x{ margin: -10px -10px 10px;}
|
||||
.stui-pannel-bg{border-radius: 2px;}
|
||||
.stui-pannel-side{ padding: 0 0 0 20px;}
|
||||
.stui-pannel-box{ padding: 10px;}
|
||||
.stui-pannel-box.active{ padding: 0; margin: -10px;}
|
||||
.stui-pannel_hd{ padding: 10px;}
|
||||
.stui-pannel_ft{ margin-top: 10px; padding: 10px 10px 0; text-align: center;}
|
||||
|
||||
/* pannel-head */
|
||||
.stui-pannel__head{ position: relative; height: 30px;}
|
||||
.stui-pannel__head.active{height: 40px;}
|
||||
.stui-pannel__head .title{float: left; margin:0; padding-right: 10px; line-height: 24px;}
|
||||
.stui-pannel__head .title img{ display: inline-block; width: 24px; height: 24px; margin-right: 10px; vertical-align: -5px;}
|
||||
.stui-pannel__head .more{ line-height: 30px;}
|
||||
|
||||
/* tabbar */
|
||||
.stui_nav__taddar .item{ display: block; text-align: center;}
|
||||
.stui_nav__taddar .item .icon{ display: block; text-align: center; font-size: 20px; line-height: 20px;}
|
||||
.stui_nav__taddar .item .icon-img{display: inline-block; width: 24px; height: 24px;}
|
||||
.stui_nav__taddar .item .title{ display: block; margin-top: 3px; font-size: 12px;;}
|
||||
.stui_nav__taddar.fixed{ position: fixed; bottom: 0; width: 100%; padding: 5px 0 0;}
|
||||
|
||||
/* vod-list */
|
||||
.stui-vodlist__thumb{display: block; position: relative; padding-top: 150%; background: url(/themes/xingkong/img/load.gif) no-repeat; background-position: 50% 50%; background-size: cover;}
|
||||
.stui-vodlist__thumb.square{ padding-top: 100%; background: url(/themes/xingkong/img/load_f.gif) no-repeat; background-position: 50% 50%; background-size: cover;}
|
||||
.stui-vodlist__thumb.active{ padding-top: 60%; background: url(/themes/xingkong/img/load_w.gif) no-repeat; background-position: 50% 50%; background-size: cover;}
|
||||
.stui-vodlist__thumb.picture {background: none; overflow: hidden;}
|
||||
.stui-vodlist__thumb.picture img{position: absolute; top: 0; left: 0; width: 100%; height: 100%;}
|
||||
.stui-vodlist__thumb .play{display: none; position: absolute; top: 0; z-index: 1; width: 100%; height: 100%; background: rgba(0,0,0,0.1) url(/themes/xingkong/img/play.png) center no-repeat;}
|
||||
.stui-vodlist__thumb .play.active{ display: block;}
|
||||
.stui-vodlist__thumb:hover .play{ display: block;}
|
||||
.stui-vodlist__detail.active{ padding: 0 10px 10px;}
|
||||
.stui-vodlist__detail .title{ font-size: 14px; margin-bottom: 0;}
|
||||
.stui-vodlist__detail .title.active{ font-size: 16px; margin-bottom: 10px;}
|
||||
.stui-vodlist__detail .text{ min-height: 19px; font-size: 12px; margin-bottom: 0; margin-top: 5px;}
|
||||
.stui-vodlist__detail .text-title{ font-size: 14px; line-height: 18px; margin:11px 0 0; height: 36px; overflow:hidden; text-overflow:ellipsis; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2;}
|
||||
|
||||
/* text-list */
|
||||
.stui-vodlist__text li a{ display: block; padding: 10px 15px 10px 0;}
|
||||
.stui-vodlist__text.active li a{ padding: 10px 0 10px;}
|
||||
.stui-vodlist__text.active li:first-child a{ padding-top: 0;}
|
||||
.stui-vodlist__text.striped li{ padding: 10px 0 10px;}
|
||||
.stui-vodlist__text.striped li a{ display: inline-block; padding: 0;}
|
||||
.stui-vodlist__text.striped .striped-head{ padding: 10px; border-radius: 5px;}
|
||||
.stui-vodlist__text.to-color li{ padding: 10px; border-radius: 5px;}
|
||||
.stui-vodlist__text.to-color li a{ padding: 0;}
|
||||
.stui-vodlist__text.downlist{ padding-top: 0;}
|
||||
.stui-vodlist__text.downlist li{ padding: 10px 0;}
|
||||
.stui-vodlist__text.downlist li .text{ line-height: 30px; overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap;}
|
||||
.stui-vodlist__text.downlist li a{ display: inline-block; padding: 0;}
|
||||
.stui-vodlist__text.downlist li a.btn{ padding: 4px 12px; margin-left: 10px;}
|
||||
|
||||
/* media-list */
|
||||
.stui-vodlist__media li { padding: 10px 0 10px;}
|
||||
.stui-vodlist__media.active li:first-child{ padding-top: 0;}
|
||||
.stui-vodlist__media.active li:last-child{ padding-bottom: 0;}
|
||||
.stui-vodlist__media li .thumb,.stui-vodlist__media .detail{display: table-cell; vertical-align: top;}
|
||||
.stui-vodlist__media li .thumb .w-thumb{ width: 190px;}
|
||||
.stui-vodlist__media li .thumb .v-thumb{ width: 120px;}
|
||||
.stui-vodlist__media li .thumb .f-thumb{ width: 120px;}
|
||||
.stui-vodlist__media li .thumb .m-thumb{ width: 65px;}
|
||||
.stui-vodlist__media li .detail{ width: 100%; padding:0 20px 0;}
|
||||
.stui-vodlist__media li .detail-side{ padding:0 10px 0;}
|
||||
.stui-vodlist__media li .detail-left{ padding: 0 20px 0 0;}
|
||||
.stui-vodlist__media li .detail .title{ margin: 10px 0 10px;}
|
||||
|
||||
/* screen-list */
|
||||
.stui-vodlist__screen { padding:10px 0 5px;}
|
||||
.stui-vodlist__screen:first-child{ padding-top: 0;}
|
||||
.stui-vodlist__screen:last-child{ padding-bottom: 0;}
|
||||
.stui-vodlist__screen li{ float: left; width: 25%; margin-bottom: 5px;}
|
||||
|
||||
/* rank-list */
|
||||
.stui-vodlist__rank li{ margin-bottom: 10px;}
|
||||
.stui-vodlist__rank li:last-child{ margin-bottom: 0;}
|
||||
|
||||
/* link-list */
|
||||
.stui-link__text li{ float: left; margin-right: 15px; margin-bottom: 10px;}
|
||||
.stui-link__pic li a{ display: block; padding:10px 20px; border-radius: 4px;}
|
||||
.stui-link__pic li a img{ max-width: 100%;}
|
||||
|
||||
/* play-list */
|
||||
.stui-content__playlist{ position: relative;}
|
||||
.stui-content__playlist.overflow{ max-height: 300px; overflow-y: scroll;}
|
||||
.stui-content__playlist li{float:left; margin-bottom:10px; margin-right:10px}
|
||||
.stui-content__playlist li a{display:inline-block; padding:5px 20px;border-radius:5px}
|
||||
.stui-content__playlist.full li{ float: none; width: 100%; margin-right: 0;}
|
||||
.stui-content__playlist.column3 li{ width: 33.3333333%; padding: 0 5px; margin-right: 0;}
|
||||
.stui-content__playlist.column6 li{ width: 16.6666667%; padding: 0 5px; margin-right: 0;}
|
||||
.stui-content__playlist.column8 li{ width: 12.5%; padding: 0 5px; margin-right: 0;}
|
||||
.stui-content__playlist.column8 li.more,.stui-content__playlist.column10 li.narrow{ width: 15%;}
|
||||
.stui-content__playlist.column10 li{ width: 10%; padding: 0 5px; margin-right: 0;}
|
||||
.stui-content__playlist.column10 li.more,.stui-content__playlist.column10 li.narrow{ width: 20%;}
|
||||
.stui-content__playlist.column12 li{ width: 8.33333333%; padding: 0 5px; margin-right: 0;}
|
||||
.stui-content__playlist.column12 li.more,.stui-content__playlist.column12 li.narrow{ width: 16.6666667%;}
|
||||
.stui-content__playlist.column3,.stui-content__playlist.column6,.stui-content__playlist.column8,.stui-content__playlist.column10,.stui-content__playlist.column12{ margin: 0 -5px;}
|
||||
.stui-content__playlist.column3 li a,.stui-content__playlist.column6 li a,.stui-content__playlist.column8 li a,.stui-content__playlist.column10 li a,.stui-content__playlist.column12 li a{ padding: 5px;}
|
||||
.stui-content__playlist.full li a,.stui-content__playlist.column3 li a,.stui-content__playlist.column6 li a,.stui-content__playlist.column8 li a,.stui-content__playlist.column10 li a,.stui-content__playlist.column12 li a{ display: block; text-align: center;overflow:hidden; text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap;}
|
||||
|
||||
/* screen */
|
||||
.stui-screen__list{position:relative;padding:10px 0 0;}
|
||||
.stui-screen__list li{float:left;margin-right:10px;margin-bottom:10px}
|
||||
.stui-screen__list li span{display:inline-block;padding:3px 0 3px}
|
||||
.stui-screen__list li a{display:inline-block;padding:3px 10px;border-radius:2px}
|
||||
.stui-screen__list.letter-list li{ margin: 0;}
|
||||
.stui-screen__list.letter-list li:first-child{ margin-right: 10px;}
|
||||
.stui-screen__list.letter-list li.active a{padding:3px 10px}
|
||||
|
||||
/* page */
|
||||
.stui-page{margin-bottom:30px;display: flex;justify-content: center;justify-items: center;}.stui-page li{display:inline-block;margin-left:10px}
|
||||
.stui-page li .num,.stui-page li a{display:inline-block;padding:5px 15px;border-radius:5px}
|
||||
.stui-page-text{ padding:0 20px 20px;}
|
||||
.stui-page-text a,.stui-page-text em,.stui-page-text span{font-style:normal;display:inline-block;margin:0;padding:6px 12px;border-radius:2px;cursor:pointer}
|
||||
.stui-page-text .pagego{ padding: 6px; margin-right: 5px;border-radius: 5;}
|
||||
.stui-page-text .pagebtn{ padding: 6px 12px; cursor: pointer;}
|
||||
|
||||
/* extra */
|
||||
.stui-extra{position:fixed;right:50px;bottom:50px}
|
||||
.stui-extra li{position:relative;padding:15px 10px 0}
|
||||
.stui-extra li a,.stui-extra li span{display:block;width:50px;height:50px;line-height:50px;text-align:center;border-radius:4px;font-size:18px;cursor:pointer}
|
||||
.stui-extra li a .icon,.stui-extra li span .icon{font-size:18px}
|
||||
.stui-extra li a img{margin-top:15px;width:20px;height:20px}
|
||||
.stui-extra li .sideslip{display:none;position:absolute;bottom:0;right:100%;width: 160px;}
|
||||
.stui-extra li .sideslip:before{content:" ";width:10px;height:10px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg);border-width:0 1px 1px 0;position:absolute;bottom:20px;right:-6px;border-style:solid}
|
||||
.stui-extra li:hover .sideslip{display:block}
|
||||
|
||||
/* flickity */
|
||||
.flickity-enabled{position:relative;}
|
||||
.flickity-enabled:focus{outline:0}
|
||||
.flickity-viewport{overflow:hidden;position:relative;height:100%}
|
||||
.flickity-slider{position:absolute;width:100%;height:100%}
|
||||
.flickity-viewport.is-pointer-down{cursor:-webkit-grabbing;cursor:grabbing}
|
||||
.flickity-prev-next-button{position:absolute;top:50%;width:30px;height:60px;border:none; background-color: rgba(0,0,0,.6); cursor:pointer;-webkit-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}
|
||||
.flickity-prev-next-button.previous{left:10px;border-radius:0 10px 10px 0}
|
||||
.flickity-prev-next-button.next{right:10px;border-radius:10px 0 0 10px}
|
||||
.flickity-prev-next-button:disabled{opacity:0;cursor:auto}
|
||||
.flickity-prev-next-button svg{position:absolute;left:20%;top:20%;width:60%;height:60%}
|
||||
.flickity-prev-next-button .arrow{fill:#fff}
|
||||
.flickity-prev-next-button.no-svg{color:#fff;font-size:18px}
|
||||
.flickity-page-dots{position:absolute;width:100%;bottom:20px;left:0;padding:0;margin:0;list-style:none;text-align:center;line-height:1}
|
||||
.flickity-page-dots .dot{display:inline-block;width:15px;height:3px;margin:0 5px;background:#f80;opacity:.25;cursor:pointer}
|
||||
.flickity-page-dots .dot.is-selected{opacity:1}
|
||||
.flickity-page{ padding-bottom: 15px; overflow: hidden;}
|
||||
.flickity-page .flickity-page-dots{ bottom: 5px;}
|
||||
|
||||
/* carousel */
|
||||
.carousel{ position: relative; width: 100%; height:100%; overflow: hidden; white-space: nowrap;}
|
||||
.carousel [class^="col-"]{ float: none; display: inline-block;}
|
||||
.carousel .list{ padding: 0; margin-right: 20px;}
|
||||
.carousel .wide{ width: 100%; display: inline-block;}
|
||||
.carousel_center{ padding-bottom: 20px;}
|
||||
.carousel_center .list a{ position: relative;}
|
||||
.carousel_center .list a:before{ content: ""; position: absolute; z-index: 1; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0,0,0,.6);}
|
||||
.carousel_center .list.is-selected a:before{ display: none;}
|
||||
|
||||
/* popup */
|
||||
.popup{position: fixed; right: -100%; top: 0; z-index: 1001; width: 100%; height: 100%; overflow-y: scroll; -webkit-overflow-scrolling: touch; -webkit-transition:.5s; -o-transition:.5s; -moz-transition:.5s; -ms-transition:.5s; transition:.5s;}
|
||||
.popup-visible{ right: 0;}
|
||||
.popup-head { padding: 15px 10px; margin-bottom: 10px;}
|
||||
.popup-head .title{ display: inline-block; margin: 0;}
|
||||
.popup-head .icon{ font-size: 20px;}
|
||||
|
||||
/* embed */
|
||||
.embed-responsive{position:relative;display:block;overflow:hidden;padding:0;height:0}
|
||||
.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}
|
||||
.embed-responsive-16by9{padding-bottom:56.25%}
|
||||
.embed-responsive-4by3{padding-bottom:75%}
|
||||
|
||||
/* bootstrap.js */
|
||||
.fade{opacity: 0;-webkit-transition: opacity .15s linear;-o-transition: opacity .15s linear;transition: opacity .15s linear;}
|
||||
.fade.in{opacity: 1;}
|
||||
.tab-content>.tab-pane,.carousel-inner>.item{ display: none;}
|
||||
.tab-content>.tab-pane.active,.carousel-inner>.item.active{ display: block;}
|
||||
.dropdown{ position: relative;}
|
||||
.dropdown-menu{display: none; position:absolute; top:100%; left:-80%; z-index:1000; padding: 10px 0; border-radius: 2px;}
|
||||
.dropdown-menu:before{ content:" "; width:10px; height:10px; -webkit-transform:rotate(-45deg); -ms-transform:rotate(-45deg); transform:rotate(-45deg); border-width:1px 1px 0 0; position: absolute; top:-6px; right: 20px; border-style: solid;}
|
||||
.dropdown-menu>li>a{display: block; padding: 6px 20px; text-align: center;}
|
||||
.open>.dropdown-menu {display: block;}
|
||||
.carousel-side{ position: absolute; z-index: 99; top: 0; bottom: 0; display: block; width: 100px; height: 100%;}
|
||||
.carousel-side .icon{ position: absolute; top: 50%; margin-top: -25px; display: block; width: 50px; height: 50px; text-align: center; font-size: 30px; line-height: 50px; background-color: rgba(0,0,0,0.6); color: #fff; border-radius: 50%;}
|
||||
.carousel-side.left{ left: 0;}
|
||||
.carousel-side.left .icon{ left: 30px;}
|
||||
.carousel-side.right{ right: 0; }
|
||||
.carousel-side.right .icon{ right: 30px;}
|
||||
.carousel-bootom{ position: absolute; width: 100%; bottom: 20px; left: 0; text-align: center;}
|
||||
.carousel-bootom li{ display: inline-block; margin: 0 5px; width:15px; height:3px; background: #f80; opacity:.25; cursor:pointer}
|
||||
.carousel-bootom li.active{ opacity:1;}
|
||||
|
||||
/* modal */
|
||||
.stui-modal{position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 9999; display: none; overflow: hidden; -webkit-overflow-scrolling: touch; outline: 0;}
|
||||
.stui-modal__dialog{position: relative; width: 350px; margin: 140px auto; }
|
||||
.stui-modal__content{ position: relative; background-color: #fff; border-radius: 6px; outline: 0; box-shadow: 0 3px 9px rgba(0,0,0,.5);}
|
||||
.modal-open{ overflow: hidden;}
|
||||
.modal-backdrop{position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1040; background-color: #000;}
|
||||
.modal-backdrop.fade{ opacity: 0;}
|
||||
.modal-backdrop.fade.in{ opacity: .5;}
|
||||
|
||||
/* mobile-share */
|
||||
.mobile-share{ position: fixed; z-index: 999; top: 0; bottom: 0; left: 0; width: 100%; height: 100%; animation: fade-in; animation-duration: .5s; -webkit-animation:fade-in .5s;}
|
||||
.share-weixin{ background: url(../img/share_weixin.png) rgba(0, 0, 0, .8) no-repeat; background-position: right top 10px; background-size: 80%;}
|
||||
.share-other{ background: url(../img/share_other.png) rgba(0, 0, 0, .8) no-repeat; background-position: center bottom 10px; background-size: 80%;}
|
||||
|
||||
/* more */
|
||||
.relative{ position: relative;}
|
||||
.top-fixed-up{ margin-top: 0 !important;}
|
||||
.top-fixed{ -webkit-transition:.5s; -o-transition:.5s; -moz-transition:.5s; -ms-transition:.5s; transition:.5s;}
|
||||
.pull-left{ float: left !important;}
|
||||
.pull-right{ float: right !important;}
|
||||
.margin-0{ margin: 0 !important;}
|
||||
.padding-0{ padding: 0 !important;}
|
||||
.margin-t0{ margin: 0 !important;}
|
||||
.padding-t0{ padding: 0 !important;}
|
||||
.margin-b0{ margin: 0 !important;}
|
||||
.padding-b0{ padding: 0 !important;}
|
||||
.block{ display: block !important;}
|
||||
.inline-block{ display: inline-block !important;}
|
||||
.hide,.visible-lg, .visible-md, .visible-sm, .visible-xs, .visible-mi{ display: none !important;}
|
||||
.mask{ position: fixed; top: 0; left: 0; bottom: 0; z-index: 999; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.2); animation: fade-in; animation-duration: .5s; -webkit-animation:fade-in .5s;}
|
||||
@keyframes fade-in {0% {opacity: 0;}40% {opacity: 0;}100% {opacity: 1;}}
|
||||
@-webkit-keyframes fade-in { 0% {opacity: 0;} 40% {opacity: 0;}100% {opacity: 1;}}
|
||||
|
||||
@media (min-width: 1200px){
|
||||
.visible-lg { display: block !important;}
|
||||
.hidden-lg {display: none !important;}
|
||||
}
|
||||
|
||||
@media (max-width: 1199px) and (min-width: 992px){
|
||||
.visible-md { display: block !important;}
|
||||
.hidden-md {display: none!important;}
|
||||
}
|
||||
|
||||
@media (max-width: 991px) and (min-width: 768px){
|
||||
.visible-sm{ display: block !important;}
|
||||
.hidden-sm {display: none !important;}
|
||||
}
|
||||
|
||||
@media (max-width: 991px){
|
||||
|
||||
.stui-pannel-side{ padding: 0;}
|
||||
|
||||
/* screen */
|
||||
.stui-screen__list{ height: 40px; padding:10px 0 10px; overflow:hidden; white-space: nowrap;}
|
||||
.stui-screen__list:last-child{ padding: 10px 0 0;}
|
||||
.stui-screen__list li{ float: none; display: inline-block; margin-right:10px; margin-bottom:0}
|
||||
.stui-screen__list li span{padding:2px 5px 2px 0}
|
||||
.stui-screen__list li a{padding:2px 5px 2px; white-space:nowrap}
|
||||
.stui-screen__list.letter-list li{ margin-right: 5px; margin-bottom: 0;}
|
||||
.stui-screen__list.letter-list li a,.stui-screen__list.letter-list li.active a{padding:2px 5px 2px}
|
||||
|
||||
/* vod-list */
|
||||
.stui-vodlist__detail .title.active{ font-size: 14px; margin-bottom: 0;}
|
||||
|
||||
/* media-list */
|
||||
.stui-vodlist__media li .thumb .v-thumb{ width: 110px;}
|
||||
.stui-vodlist__media li .thumb .w-thumb{ width: 130px;}
|
||||
.stui-vodlist__media li .thumb .f-thumb{ width: 70px;}
|
||||
|
||||
/* play-list */
|
||||
.stui-content__playlist{ -webkit-overflow-scrolling : touch;}
|
||||
.stui-content__playlist.column3 li{ width: 50%;}
|
||||
.stui-content__playlist.column6 li{ width: 25%;}
|
||||
.stui-content__playlist.column8 li{ width: 20%;}
|
||||
.stui-content__playlist.column10 li{ width: 16.6666667%;}
|
||||
|
||||
/* modal */
|
||||
.stui-modal__dialog{ width: 320px; margin: 50px auto;}
|
||||
|
||||
@media (max-width: 767px){
|
||||
.visible-xs { display: block !important;}
|
||||
.hidden-xs {display: none!important;}
|
||||
|
||||
/* all */
|
||||
body{ font-size: 12px;}
|
||||
|
||||
/* text */
|
||||
h1{ font-size:20px; line-height: 24px;}
|
||||
h2{ font-size:18px; line-height: 22px;}
|
||||
h3{ font-size:16px; line-height: 20px;}
|
||||
h4{ font-size:14px; line-height: 18px;}
|
||||
h5{ font-size:12px; line-height: 16px;}
|
||||
h6{ font-size:10px; line-height: 14px;}
|
||||
|
||||
/* btn */
|
||||
.btn{padding: 6px 20px;}
|
||||
.btn-min{ padding: 3px 8px;}
|
||||
.btn-lg{ padding: 12px 24px;}
|
||||
|
||||
/*nav*/
|
||||
.nav{ height: 20px;}
|
||||
.nav-head > li{ margin-top: 2px; margin-right: 20px;}
|
||||
.nav-head > li > a{ padding-bottom: 10px; font-size: 14px;}
|
||||
.nav-tabs > li{ margin-left: 20px;}
|
||||
.nav-tabs > li > a{padding: 6px 0 6px;}
|
||||
.nav-page > li > a{ padding: 0 3px; height: 20px; line-height: 18px;}
|
||||
|
||||
/* pic-text */
|
||||
.pic-text-silde{ font-size: 12px;}
|
||||
|
||||
/* line */
|
||||
.split-line{ height: 12px; margin-left: 5px; margin-right: 5px;}
|
||||
.top-line:before,.top-line-dot:before{-webkit-transform-origin: 0 0;transform-origin: 0 0;-webkit-transform: scaleY(0.5);transform: scaleY(0.5);}
|
||||
.bottom-line:after,.bottom-line-dot:before{ -webkit-transform-origin: 0 100%;transform-origin: 0 100%; -webkit-transform: scaleY(0.5);transform: scaleY(0.5);}
|
||||
.m-top-line,.m-top-line-dot,.m-bottom-line,.m-bottom-line-dot{ position: relative;}
|
||||
.m-top-line:before,.m-top-line-dot:before{content: " "; position: absolute; left: 0; top: 0; right: 0; width: 100%; height: 1px; -webkit-transform-origin: 0 0;transform-origin: 0 0;-webkit-transform: scaleY(0.5);transform: scaleY(0.5);}
|
||||
.m-bottom-line:after,.m-bottom-line-dot:before{content: " "; position: absolute; left: 0; bottom: 0; right: 0; width: 100%; height: 1px; -webkit-transform-origin: 0 100%;transform-origin: 0 100%; -webkit-transform: scaleY(0.5);transform: scaleY(0.5);}
|
||||
|
||||
/* pannel */
|
||||
.stui-pannel{ margin-bottom: 10px;}
|
||||
.stui-pannel.stui-pannel-x{ margin: 0 0 5px;}
|
||||
.stui-pannel-bg{border-radius: 0;}
|
||||
.stui-pannel-box{ padding:10px 5px;}
|
||||
.stui-pannel-box.active{ margin:5px;}
|
||||
.stui-pannel_hd{ padding:0 5px 10px;}
|
||||
|
||||
/* pannel-head */
|
||||
.stui-pannel__head{ height: 20px;}
|
||||
.stui-pannel__head.active{height: 30px;}
|
||||
.stui-pannel__head .title,.stui-pannel__head .title a{font-size: 16px;}
|
||||
.stui-pannel__head .title img{ width: 18px; height: 18px; margin-right: 5px; vertical-align: -3px;}
|
||||
.stui-pannel__head .more{ line-height: 20px;}
|
||||
|
||||
/* vod-list */
|
||||
.stui-vodlist__thumb .tag{ padding: 0 5px;}
|
||||
.stui-vodlist__thumb .silde-title{ font-size: 12px;}
|
||||
.stui-vodlist__detail .title,.stui-vodlist__detail .title.active{margin-bottom: 0; font-size: 12px;}
|
||||
|
||||
/* media-list */
|
||||
.stui-vodlist__media li .thumb .v-thumb{ width: 100px;}
|
||||
.stui-vodlist__media li .thumb .w-thumb{ width: 130px;}
|
||||
.stui-vodlist__media li .thumb .f-thumb{ width: 70px;}
|
||||
.stui-vodlist__media li .detail{ padding: 0 10px;}
|
||||
.stui-vodlist__media li .detail.active{ padding-left: 0; padding-right: 10px;}
|
||||
|
||||
/* text-list */
|
||||
.stui-vodlist__text li a{ padding:10px 0;}
|
||||
.stui-vodlist__text.downlist li{ padding: 5px 0 0;}
|
||||
|
||||
/* play-list */
|
||||
.stui-content__playlist li a{padding:5px 10px;font-size:12px}
|
||||
.stui-content__playlist.column3 li{ float: none; width: 100%;}
|
||||
.stui-content__playlist.column6 li,.stui-content__playlist.column8 li,.stui-content__playlist.column10 li,.stui-content__playlist.column12 li{ width: 25%;}
|
||||
|
||||
/* page */
|
||||
.stui-page li{float:left;width:20%;margin:0;padding:0 5px 0 5px}
|
||||
.stui-page li a,.stui-page__box li .num{display:block;padding:5px 0;text-align:center}
|
||||
.stui-page li.page-item{ width: auto; margin-bottom: 5px;}
|
||||
.stui-page li.page-item a{ padding: 5px 15px;}
|
||||
|
||||
/* extra */
|
||||
.stui-extra{right:15px;bottom:15px}
|
||||
.stui-extra li{padding:8px 0 0}
|
||||
.stui-extra li a,.stui-extra li span{width:35px;height:35px;line-height:35px;font-size:16px}
|
||||
.stui-extra li a .icon,.stui-extra li span .icon{font-size:16px}
|
||||
.stui-extra li a img{margin-top:8px;width:18px;height:18px}
|
||||
|
||||
/* carousel */
|
||||
.carousel .list{ margin-right: 10px;}
|
||||
|
||||
/* flickity */
|
||||
.flickity-prev-next-button{display: none;}
|
||||
.flickity-prev-next-button.previous{left:5px;border-radius:0 5px 5px 0}
|
||||
.flickity-prev-next-button.next{right:5px;border-radius:5px 0 0 5px}
|
||||
.flickity-page-dots{ bottom: 15px;}
|
||||
|
||||
/* modal */
|
||||
.stui-modal__dialog{ width: 100%; margin: 0; padding: 50px 20px;}
|
||||
|
||||
.carousel-control{ width: 50px; height: 100%;}
|
||||
.carousel-control .icon{ margin-top: -15px; width: 30px; height: 30px; font-size: 20px; line-height: 30px;}
|
||||
.carousel-control.left .icon{ left: 10px;}
|
||||
.carousel-control.right .icon{ right: 10px;}
|
||||
|
||||
}
|
||||
@media (max-width: 374px){
|
||||
.visible-mi{ display: block !important;}
|
||||
.hidden-mi{display: none !important;}
|
||||
|
||||
/* media-list */
|
||||
.stui-vodlist__media li .thumb .v-thumb{ width: 90px;}
|
||||
.stui-vodlist__media li .thumb .w-thumb{ width: 100px;}
|
||||
.stui-vodlist__media li .thumb .f-thumb{ width: 50px;}
|
||||
}
|
||||
183
resources/assets/css/stui_block_color.css
Normal file
@@ -0,0 +1,183 @@
|
||||
/*!
|
||||
* Edition v3.0 Copyright 2016-2018 http://v.shoutu.cn
|
||||
* Email 726662013@qq.com,admin@shoutu.cn
|
||||
*/
|
||||
@charset "utf-8";
|
||||
|
||||
/* all */
|
||||
body{ background: url(/themes/xingkong/img/bg_icon.jpg); color: #666;}
|
||||
|
||||
/* text */
|
||||
a,h1, h2, h3, h4, h5, h6{ color: #333333;}
|
||||
a:hover{ color: #FF9900;}
|
||||
.text-red{ color: red;}
|
||||
.text-muted{ color: #999999;}
|
||||
|
||||
/* form */
|
||||
.form-control{ background-color: #F5F5F5; color: #999999; border: 1px solid #EEEEEE;}
|
||||
.form-control.colorfff{ background-color: #FFFFFF;}
|
||||
.form-control:focus{border-color:#FF9900; -webkit-box-shadow:inset 0 1px 1px rgba(255,136,0,.075),0 0 8px rgba(255,136,0,.6);}
|
||||
|
||||
/* btn */
|
||||
.btn,.btn:hover,.btn .icon{ color: #333333;}
|
||||
.btn{ border: 1px solid #EEEEEE;}
|
||||
.btn-default{ background-color: #f5f5f5; color: #333333;}
|
||||
.btn-default:hover{ background-color: #f0eeee;}
|
||||
.btn-primary{ background-color: #FF9900; border: 1px solid #FF9900; color: #FFFFFF;}
|
||||
.btn-primary .icon{ color: #FFFFFF;}
|
||||
.btn-primary:hover{ background-color: #FF6600; border: 1px solid #FF6600; color: #FFFFFF;}
|
||||
.btn-primary:hover .icon{ color: #FFFFFF;}
|
||||
|
||||
/* dropdown */
|
||||
.dropdown-menu{ background-color: #FFFFFF; border: 1px solid #EEEEEE;}
|
||||
.dropdown-menu:before{background-color: #FFFFFF; border-color: #EEEEEE;}
|
||||
.dropdown-menu>.active>a, .dropdown-menu>.active>a:focus, .dropdown-menu>.active>a:hover{ background-color: #FF9900; color: #FFFFFF;}
|
||||
|
||||
/* line */
|
||||
.split-line{ background-color: #EEEEEE;}
|
||||
.top-line:before{ border-top: 1px solid #EEEEEE;}
|
||||
.bottom-line:after{ border-bottom: 1px solid #EEEEEE;}
|
||||
.top-line-dot:before{ border-top: 1px dotted #EEEEEE;}
|
||||
.bottom-line-dot:before{ border-bottom: 1px dotted #EEEEEE;}
|
||||
|
||||
/* badge */
|
||||
.badge{ background-color: #EEEEEE;}
|
||||
.badge-first{ background-color: #FF4A4A; color: #FFFFFF;}
|
||||
.badge-second{ background-color: #FF7701; color: #FFFFFF;}
|
||||
.badge-third{ background-color: #FFB400; color: #FFFFFF;}
|
||||
|
||||
/* nav */
|
||||
.nav-head > li.active > a,.nav-tabs > li.active > a{ border-bottom: 2px solid #FF9900; color: #FF9900;}
|
||||
.nav-tag > li > a,.nav-page > li > a{ background-color: #FFFFFF; border: 1px solid #EEEEEE; color: #333333;}
|
||||
.nav-tag > li > a:hover,.nav-tag > li.active a,.nav-page > li > a:hover,.nav-page > li.active > a{ background-color: #FF9900; border: 1px solid #FF9900; color: #FFFFFF;}
|
||||
.nav-page > li > a:hover > .icon{ color: #fff;}
|
||||
|
||||
/* tag */
|
||||
.tag-type li a{ background-color: #FFFFFF; border: 1px solid #EEEEEE; color: #666666;}
|
||||
.tag-type li a:hover,.tag-type li.active a{ background-color: #FF9900; border: 1px solid #FF9900; color: #FFFFFF;}
|
||||
.tag-btn li a{ background-color: #F8F8F8; color: #666666;}
|
||||
.tag-btn li a.active,.tag-text li a.active,.tag-type li a.active{ color: #FF9900;}
|
||||
.tag-btn li a:hover,.tag li.active a{ background-color: #FF9900; color: #FFFFFF;}
|
||||
|
||||
/* pic-tag */
|
||||
.pic-tag{ background-color: rgba(0,0,0,0.6); color: #FFFFFF;}
|
||||
.pic-tag.active,.pic-tag-h{ background-color: #FF9900; color: #FFFFFF;}
|
||||
.pic-text,.pic-title-b{ background-repeat: no-repeat; background-image: linear-gradient(transparent,rgba(0,0,0,.5)); color: #FFFFFF;}
|
||||
.pic-text.active{ background: rgba(0,0,0,0.6); color: #FFFFFF;}
|
||||
.pic-title-t{background: linear-gradient(to bottom, rgba(0,0,0,0.7) 0%,rgba(0,0,0,0) 100%); color: #FFFFFF;}
|
||||
|
||||
/* pannel */
|
||||
.stui-pannel-bg{background-color: #FFFFFF; border: 1px solid #EEEEEE;}
|
||||
|
||||
/* tabbar */
|
||||
.stui_nav__taddar .item .icon,.stui_nav__taddar .item .title{ color: #999;}
|
||||
.stui_nav__taddar .item.active .title,.stui_nav__taddar .item.active .icon{color: #FF9900;}
|
||||
.stui_nav__taddar.fixed{ background-color: #FFFFFF;}
|
||||
|
||||
/* vodlist */
|
||||
.stui-vodlist__bg{background-color: #FFFFFF; box-shadow: 0 1px 2px rgba(0,0,0,.05);}
|
||||
.stui-vodlist__bg:hover{ box-shadow: 0 3px 5px rgba(0,0,0,.08);}
|
||||
|
||||
/* text-list */
|
||||
.stui-vodlist__text.striped .striped-head,.stui-vodlist__text.to-color li:nth-of-type(odd){ background-color: #f5f5f5;}
|
||||
|
||||
/* link */
|
||||
.stui-link__pic li a{ background-color: #FFFFFF; border: 1px solid #F5F5F5;}
|
||||
.stui-link__pic li a:hover{ border: 1px solid #FF9900;}
|
||||
|
||||
/* screen */
|
||||
.stui-screen__list li a{ color: #333333;}
|
||||
.stui-screen__list li.active a{ background-color: #FF9900; color: #FFFFFF;}
|
||||
|
||||
/* playlist */
|
||||
.stui-content__playlist li a{ border: 1px solid #EEEEEE;}
|
||||
.stui-content__playlist li a:hover,.stui-content__playlist li.active a{ border: 1px solid #FF9900; background-color: #FF9900; color: #FFFFFF;}
|
||||
|
||||
/* player */
|
||||
.stui-player__video{ background-color: #000000;}
|
||||
|
||||
/* page */
|
||||
.stui-page li a,.stui-page li .num,.stui-page-text a,.stui-page-text em,.stui-page-text span{background-color: #FFFFFF; border: 1px solid #EEEEEE;}
|
||||
.stui-page li a:hover,.stui-page li.active a,.stui-page li.active .num,.stui-page li.disabled a,.stui-page-text span.pagenow{ background-color: #FF9900; color: #FFFFFF; border: 1px solid #FF9900;}
|
||||
.stui-page-text .pagego{ border: 1px solid #EEEEEE;}
|
||||
.stui-page-text .pagebtn{background-color: #FFFFFF; border: 1px solid #EEEEEE;}
|
||||
|
||||
/* extra */
|
||||
.stui-extra li a,.stui-extra li span{ background-color: #FFFFFF; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);}
|
||||
.stui-extra li a.backtop{ background-color: rgba(0,0,0,0.6); color: #FFFFFF; }
|
||||
.stui-extra li .sideslip{ background-color: #FFFFFF; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);}
|
||||
.stui-extra li .sideslip:before{ background-color: #FFFFFF; border-color: rgba(0, 0, 0, 0.1);}
|
||||
|
||||
/* popup */
|
||||
.popup{ background-color: #F8F8F8;}
|
||||
.popup-head{ background-color: #FFFFFF;}
|
||||
|
||||
.maskkkk {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left:0px;
|
||||
width: 100%;
|
||||
height: 128px;
|
||||
z-index: 1001;
|
||||
|
||||
}
|
||||
.closeee{
|
||||
background: url("images/closesanjiao.png") no-repeat center center;
|
||||
}
|
||||
|
||||
.maskkkk .gotoCenter {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 140px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.maskkkk .closeee {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 20px;
|
||||
margin-left: 0px;
|
||||
width: 40px;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
.clickarea{
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 200px;
|
||||
margin-left: 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
.thumbnail {
|
||||
position: fixed;
|
||||
right: 0px;
|
||||
bottom: 0px;
|
||||
width: 184px;
|
||||
height: 124px;
|
||||
cursor: pointer;
|
||||
/*display: none;*/
|
||||
}
|
||||
|
||||
.fd_gb
|
||||
{ width:20px; height:20px; margin:10px 0 0 0; position:absolute; right:0; top:0;}
|
||||
|
||||
|
||||
@-webkit-keyframes rotate {
|
||||
from {-webkit-transform:rotate(0deg);}
|
||||
to {-webkit-transform:rotate(360deg);}
|
||||
}
|
||||
@media (max-width: 767px){
|
||||
|
||||
/* form */
|
||||
.form-control{ background-color:#F8F8F8; color: #999999; border: 0;}
|
||||
|
||||
/*pannel*/
|
||||
.stui-pannel-bg,.stui-vodlist__bg,.stui-vodlist__bg:hover{box-shadow: none;border: 0;}
|
||||
|
||||
/* line */
|
||||
.m-top-line:before{ border-top: 1px solid #EEEEEE;}
|
||||
.m-bottom-line:after{ border-bottom: 1px solid #EEEEEE;}
|
||||
.m-top-line-dot:before{ border-top: 1px dotted #EEEEEE;}
|
||||
.m-bottom-line-dot:before{ border-bottom: 1px dotted #EEEEEE;}
|
||||
}
|
||||
170
resources/assets/css/stui_default.css
Normal file
@@ -0,0 +1,170 @@
|
||||
@charset "utf-8";
|
||||
|
||||
/* header */
|
||||
.stui-header__top{position: relative; margin-bottom: 20px; background-color: #fff;}
|
||||
|
||||
/* header-logo */
|
||||
.stui-header__logo{float:left;}
|
||||
.stui-header__logo{margin: 20px 0;}
|
||||
|
||||
/* header-menu */
|
||||
.stui-header__menu{position:relative; background-color: #333; color: #fff;}
|
||||
.stui-header__menu li{float:left;}
|
||||
.stui-header__menu li a{display:inline-block; padding: 15px 25px; font-size:15px; color: #fff;}
|
||||
.stui-header__menu li.active a, .stui-header__menu li:hover{ background-color: #222;}
|
||||
.stui-header__menu .more{ position: absolute; top: 0; right: 0; padding: 15px 0; color: #999;}
|
||||
|
||||
.stui-header__menu .submenu {
|
||||
display: none;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: -100%;
|
||||
background-color: #222;
|
||||
z-index: 10;
|
||||
width: 50vw;
|
||||
}
|
||||
|
||||
.stui-header__menu .submenu li {
|
||||
width: 20%;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.stui-header__menu .submenu li a{
|
||||
padding: 4px 6px !important;
|
||||
}
|
||||
|
||||
.stui-header__menu li.dropdown:hover .submenu{
|
||||
display: block;
|
||||
}
|
||||
|
||||
|
||||
/* header-seacrh */
|
||||
.stui-header__search{ float:left; position:relative; width: 380px; margin: 25px 30px 25px 50px; }
|
||||
.stui-header__search .form-control{display:block; width:100%; height: 38px; padding: 0 45px 0 10px; font-size:12px; line-height: 25px; border-radius: 5px; transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s; background-color:#f5f5f5; color: #999; border: 0;}
|
||||
.stui-header__search .submit{display:block; position:absolute; top: 0; right: 0; width:35px; height: 38px; border: 0; cursor: pointer; border: 0; background: none; color: #999;}
|
||||
|
||||
/* header-user */
|
||||
.stui-header__user{float:right}
|
||||
.stui-header__user > li{ float:left; position: relative; padding: 35px 0 10px; margin-left: 30px}
|
||||
.stui-header__user > li .icon{ font-size: 24px; line-height: 24px; vertical-align: -2px; color: #999;}
|
||||
.stui-header__user > li .dropdown{ display: none; position: absolute; z-index: 999; width: 240px; top: 100%; right: -15px; padding: 15px; font-size: 12px; color: #999; background-color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.2); border-radius: 4px; background-color: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.2);}
|
||||
.stui-header__user > li .dropdown:before{ content:" "; width:10px; height:10px; -webkit-transform:rotate(-45deg); -ms-transform:rotate(-45deg); transform:rotate(-45deg); position: absolute; top:-5px; right: 30px; background-color: #fff; border-top: 1px solid #eee; border-right: 1px solid #eee;}
|
||||
.stui-header__user > li:hover .dropdown{ display: block;}
|
||||
.stui-header__user .dropdown li{ position: relative; padding: 10px 0;}
|
||||
.stui-header__user .dropdown li:first-child{ margin-top: 10px;}
|
||||
.stui-header__user .dropdown li:last-child{ padding-bottom: 0;}
|
||||
|
||||
/* media */
|
||||
.stui-vodlist__media li .score{ position: relative;}
|
||||
.stui-vodlist__media li .score .star{zoom: 50%; display: inline-block; position: relative; top: 5px; width: 160px; height: 25px; background: url(/themes/xingkong/img/star1.png) 0 0 no-repeat;}
|
||||
.stui-vodlist__media li .score .branch{ display: inline-block; font-size: 12px; color: red;}
|
||||
.stui-vodlist__media li .score .star .star-cur{display: inline-block; background: url(/themes/xingkong/img/star.png) 0 0 no-repeat; height: 25px; position: absolute; top: 0; z-index: 1;}
|
||||
|
||||
/* content */
|
||||
.stui-content__detail,.stui-content__thumb{display:table-cell;vertical-align:top}
|
||||
.stui-content__thumb .v-thumb{width:190px}
|
||||
.stui-content__thumb .w-thumb{width:300px}
|
||||
.stui-content__detail{width:100%;padding:10px 20px;}
|
||||
.stui-content__detail .title{margin: 0 0 10px; font-size: 24px; line-height:30px; font-weight: 700;}
|
||||
.stui-content__detail .data{margin-bottom:10px}
|
||||
.stui-content__detail .data li{float:left;margin-right:20px}
|
||||
.stui-content__detail .desc{padding-left:42px}
|
||||
.stui-content__detail .desc .left{margin-left:-42px}
|
||||
/* .stui-content__detail .play-btn{padding-left:65px;margin-top:20px} */
|
||||
.stui-content__detail .play-btn .share{margin-top:5px}
|
||||
.stui-content__detail .play-btn .btn{ margin-right: 10px;}
|
||||
.stui-content h2 {font-size: 14px;line-height: 14px;}
|
||||
/* player */
|
||||
.stui-player__video{ background-color: #000}
|
||||
.stui-player__detail{ margin-top: 20px;}
|
||||
.stui-player__detail .more-btn{ float: right; padding-top: 10px;}
|
||||
.stui-player__detail .more-btn li{ display: inline-block; margin-left: 10px;}
|
||||
.stui-player__detail .more-btn .btn{ padding: 6px 15px;}
|
||||
.stui-player__detail .title{margin:0 0 10px}
|
||||
.stui-player__detail .detail-content{padding-top:10px}
|
||||
.stui-player__detail .desc{padding-left:42px}
|
||||
.stui-player__detail .desc .left{margin-left:-42px}
|
||||
|
||||
/* autocomplete */
|
||||
.autocomplete-suggestions{ padding: 0 10px; margin-top: 5px; border-radius:4px; background-color: #FFFFFF; box-shadow: 0 2px 10px rgba(0,0,0,.05);}
|
||||
.autocomplete-suggestions.active{position: absolute; z-index: 9999; top: 100%; width: 100%;}
|
||||
.autocomplete-suggestion{padding:10px 0; cursor:pointer; border-top: 1px solid #EEEEEE;}
|
||||
.autocomplete-suggestion:first-child{border-top:0}
|
||||
.mac_results{ z-index: 9999; padding: 0 10px; margin-top: 5px; border-radius:4px; background-color: #FFFFFF; border:1px solid #EEEEEE; box-shadow: 0 2px 10px rgba(0,0,0,.05);}
|
||||
.mac_results li{padding:10px 0; cursor:pointer; border-top: 1px solid #EEEEEE;}
|
||||
.mac_results li:first-child{ border: 0;}
|
||||
|
||||
|
||||
@media (min-width:768px){
|
||||
.container{width:750px}
|
||||
}
|
||||
@media (min-width:992px){
|
||||
.container{width:920px}
|
||||
}
|
||||
@media (min-width:1200px){
|
||||
.container{width:1170px}
|
||||
}
|
||||
@media (max-width:1024px){
|
||||
|
||||
/* header */
|
||||
.stui-header__top{ margin-bottom: 10px;}
|
||||
.stui-header__logo{margin:10px 0 10px}
|
||||
.stui-header__search{ margin: 10px 0 10px 30px; width: 200px;}
|
||||
.stui-header__search .form-control{ height: 30px;}
|
||||
.stui-header__search .submit{ width: 30px; height: 30px;}
|
||||
/* .stui-header__menu ul{ overflow:hidden; white-space: nowrap;} */
|
||||
.stui-header__menu li{ float: none; display: inline-block;}
|
||||
.stui-header__menu li a{ padding: 12px 15px; font-size: 14px; white-space:nowrap;}
|
||||
.stui-header__user > li{ padding: 15px 0 10px; margin-right: 10px;}
|
||||
.stui-header__user > li .dropdown{ right: 0;}
|
||||
.stui-header__user > li .icon{ font-size: 18px; line-height: 18px;}
|
||||
.stui-header__menu li:hover .dropdown,.stui-header__user > li:hover .dropdown{ display: none;}
|
||||
|
||||
.stui-header__menu .submenu {
|
||||
left: 0;
|
||||
max-width: 75vw;
|
||||
max-height: 50vh;
|
||||
overflow: auto;
|
||||
}
|
||||
.stui-header__menu .submenu li {
|
||||
width: 100%;
|
||||
padding: 2px;
|
||||
}
|
||||
}
|
||||
@media (max-width:767px){
|
||||
|
||||
/* header */
|
||||
.stui-header__logo{ margin-left:10px}
|
||||
.stui-header__search{ margin: 0; position:absolute; top: 15px; left: 170px; right:30px; width:auto;}
|
||||
.stui-header__user{padding-right:10px}
|
||||
.stui-header__user > li{ padding: 14px 0; margin: 0;}
|
||||
.stui-header__user > li .dropdown:before{ right: 8px;}
|
||||
.stui-header__user > li .icon{ font-size: 24px; line-height: 24px;}
|
||||
|
||||
/* content */
|
||||
.stui-content__thumb .v-thumb{width:115px}
|
||||
.stui-content__thumb .w-thumb{width:160px}
|
||||
.stui-content__detail{padding:0 10px}
|
||||
.stui-content__detail .title{ margin:0 0 8px; font-size:18px; line-height:18px; font-weight: 700;}
|
||||
.stui-content__detail .data{margin:0 0 8px;font-size:12px}
|
||||
.stui-content__detail .play-btn{margin:0;padding:0}
|
||||
|
||||
/* player */
|
||||
.stui-player__detail.detail .title{ margin-top: 10px; font-size: 16px;}
|
||||
.stui-player__detail{ margin-top: 0;}
|
||||
.stui-player__detail .title{ font-size:18px; font-weight: 700;}
|
||||
.stui-player__detail .more-btn{ margin-bottom: 10px;}
|
||||
.stui-player__detail .more-btn{ float: none; padding: 10px; background-color: #222; display: -webkit-box; display: -webkit-flex; display: flex;}
|
||||
.stui-player__detail .more-btn li{ margin: 0; padding: 0 5px; -webkit-box-flex: 1; -webkit-flex: 1; flex: 1; text-align: center;}
|
||||
.stui-player__detail .more-btn .btn{ display: block; padding: 6px;}
|
||||
|
||||
/* type */
|
||||
.stui-mobile__type li{padding:0 20px}
|
||||
.stui-mobile__type li a{display:block;padding:10px 0;text-align:center}
|
||||
|
||||
/* foot */
|
||||
.stui-foot{padding:20px 0}
|
||||
|
||||
}
|
||||
|
||||
.text_single-line {display: inline-block;white-space: nowrap;overflow: hidden;text-overflow: ellipsis;-o-text-overflow: ellipsis;max-width: 140px;}
|
||||
BIN
resources/assets/img/bg_icon.jpg
Normal file
|
After Width: | Height: | Size: 519 B |
BIN
resources/assets/img/icon_1.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
resources/assets/img/icon_30.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
resources/assets/img/icon_6.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
resources/assets/img/load.gif
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
resources/assets/img/load_f.gif
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
resources/assets/img/load_w.gif
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
resources/assets/img/play.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
resources/assets/img/star.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
resources/assets/img/star1.png
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
0
resources/assets/js/index.html
Normal file
2
resources/assets/js/jquery.min.js
vendored
Normal file
319
resources/assets/js/stui_block.js
Normal file
@@ -0,0 +1,319 @@
|
||||
/*!
|
||||
* v3.0 Copyright 2016-2018 http://v.shoutu.cn
|
||||
* Email 726662013@qq.com
|
||||
*/
|
||||
|
||||
var playerhigh = "1";
|
||||
//是否开启播放器高度自适应,0关闭1开启(开启后将播放器设置100%关闭填写固定高度)
|
||||
|
||||
var lazyswitch = "1";
|
||||
//是否开启图片懒加载,0关闭1开启(关闭后会通过js直接加载图片,速度较慢)
|
||||
|
||||
var playcolumn = "8";
|
||||
//是否开启有序播放列表,0关闭,3、6、8、10、12开启并指定列数,数字代表每行列数,手机强制4列
|
||||
|
||||
var qrcode1 = "1";
|
||||
//右侧悬浮二维码,1自动生成(当前页面二维码),填写路径将加载指定图片(建议尺寸150*150px)例:/statics/img/wxcode.png
|
||||
|
||||
var qrcode2 = "1";
|
||||
//内容页二维码,1自动生成(当前页面二维码),填写路径将加载指定图片(建议尺寸160*160px)例:/statics/img/wxcode.png
|
||||
|
||||
var copyshort = "0"
|
||||
//是否开启自动生成短链接,0关闭1开启(开启后点击分享按钮将会复制短链否则复制默认链接)
|
||||
|
||||
var baidushare = "0";
|
||||
//是否开启百度分享,0关闭,启用本地分享填写/statics/api/js/share.js,启用官网分享填写http://bdimg.share.baidu.com/static/api/js/share.js(不支持https)
|
||||
|
||||
var stui = {
|
||||
'browser': {//浏览器
|
||||
url: document.URL,
|
||||
domain: document.domain,
|
||||
title: document.title,
|
||||
language: (navigator.browserLanguage || navigator.language).toLowerCase(),
|
||||
canvas: function() {
|
||||
return !!document.createElement("canvas").getContext
|
||||
}(),
|
||||
useragent: function() {
|
||||
var a = navigator.userAgent;
|
||||
return {
|
||||
mobile: !! a.match(/AppleWebKit.*Mobile.*/),
|
||||
ios: !! a.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/),
|
||||
android: -1 < a.indexOf("Android") || -1 < a.indexOf("Linux"),
|
||||
iPhone: -1 < a.indexOf("iPhone") || -1 < a.indexOf("Mac"),
|
||||
iPad: -1 < a.indexOf("iPad"),
|
||||
trident: -1 < a.indexOf("Trident"),
|
||||
presto: -1 < a.indexOf("Presto"),
|
||||
webKit: -1 < a.indexOf("AppleWebKit"),
|
||||
gecko: -1 < a.indexOf("Gecko") && -1 == a.indexOf("KHTML"),
|
||||
weixin: -1 < a.indexOf("MicroMessenger")
|
||||
}
|
||||
}()
|
||||
},
|
||||
'mobile': {//移动端
|
||||
'popup': function() {
|
||||
$popblock = $(".popup");
|
||||
$(".open-popup").click(function() {
|
||||
$popblock.addClass("popup-visible");
|
||||
$("body").append('<div class="mask"></div>');
|
||||
$(".close-popup").click(function() {
|
||||
$popblock.removeClass("popup-visible");
|
||||
$(".mask").remove();
|
||||
$("body").removeClass("modal-open");
|
||||
});
|
||||
$(".mask").click(function() {
|
||||
$popblock.removeClass("popup-visible");
|
||||
$(this).remove();
|
||||
$("body").removeClass("modal-open");
|
||||
});
|
||||
})
|
||||
},
|
||||
'slide': function() {
|
||||
$(".type-slide").each(function(a) {
|
||||
$index = $(this).find('.active').index()*1;
|
||||
if($index > 3){
|
||||
$index = $index-3;
|
||||
}else{
|
||||
$index = 0;
|
||||
}
|
||||
$(this).flickity({
|
||||
cellAlign: 'left',
|
||||
freeScroll: true,
|
||||
contain: true,
|
||||
prevNextButtons: false,
|
||||
pageDots: false,
|
||||
initialIndex: $index
|
||||
});
|
||||
});
|
||||
},
|
||||
'mshare': function() {
|
||||
$(".open-share").click(function() {
|
||||
stui.browser.useragent.weixin ? $("body").append('<div class="mobile-share share-weixin"></div>') : $("body").append('<div class="mobile-share share-other"></div>');
|
||||
$(".mobile-share").click(function() {
|
||||
$(".mobile-share").remove();
|
||||
$("body").removeClass("modal-open");
|
||||
});
|
||||
});
|
||||
}
|
||||
},
|
||||
'images': {//图片处理
|
||||
'lazyload': function() {
|
||||
if(lazyswitch==1){
|
||||
$(".lazyload").lazyload({
|
||||
effect: "fadeIn",
|
||||
threshold: 200,
|
||||
failurelimit: 15,
|
||||
skip_invisible: false
|
||||
});
|
||||
}else{
|
||||
$(".lazyload").each(function(){
|
||||
var original = $(this).attr("data-original");
|
||||
$(this).css("background-image","url("+original+")");
|
||||
$(this).attr("data-original","");
|
||||
if($(this).attr("src")!= undefined){
|
||||
$(this).attr("src",original);
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
'carousel': function() {
|
||||
$('.carousel_default').flickity({
|
||||
cellAlign: 'left',
|
||||
contain: true,
|
||||
wrapAround: true,
|
||||
autoPlay: true,
|
||||
prevNextButtons: false
|
||||
});
|
||||
$('.carousel_wide').flickity({
|
||||
cellAlign: 'center',
|
||||
contain: true,
|
||||
wrapAround: true,
|
||||
autoPlay: true
|
||||
});
|
||||
$('.carousel_center').flickity({
|
||||
cellAlign: 'center',
|
||||
contain: true,
|
||||
wrapAround: true,
|
||||
autoPlay: true,
|
||||
prevNextButtons: false
|
||||
});
|
||||
$('.carousel_right').flickity({
|
||||
cellAlign: 'left',
|
||||
wrapAround: true,
|
||||
contain: true,
|
||||
pageDots: false
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
|
||||
'qrcode': function() {
|
||||
if(qrcode1==1){
|
||||
if($("#qrcode").length){
|
||||
var qrcode = new QRCode('qrcode', {
|
||||
text: stui.browser.url,
|
||||
width: 150,
|
||||
height: 150,
|
||||
colorDark : '#000000',
|
||||
colorLight : '#ffffff',
|
||||
correctLevel : QRCode.CorrectLevel.H
|
||||
});
|
||||
$("#qrcode img").attr("class","img-responsive");
|
||||
}
|
||||
} else {
|
||||
if($("#qrcode").length){
|
||||
$("#qrcode").append("<img class='img-responsive' src='"+qrcode1+"' width='150' height='150' />");
|
||||
}
|
||||
}
|
||||
if(qrcode2==1){
|
||||
if($("#qrcode2").length){
|
||||
var qrcode = new QRCode('qrcode2', {
|
||||
text: stui.browser.url,
|
||||
width: 160,
|
||||
height: 160,
|
||||
colorDark : '#000000',
|
||||
colorLight : '#ffffff',
|
||||
correctLevel : QRCode.CorrectLevel.H
|
||||
});
|
||||
$("#qrcode2 img").attr("class","img-responsive").css({"padding":"10px","background-color":"#fff"});
|
||||
}
|
||||
} else {
|
||||
if($("#qrcode2").length){
|
||||
$("#qrcode2").append("<img class='img-responsive' src='"+qrcode2+"' width='160' height='160' />");
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
'common': {//公共基础
|
||||
'bootstrap': function() {
|
||||
$('a[data-toggle="tab"]').on("shown.bs.tab", function(a) {
|
||||
var b = $(a.target).text();
|
||||
$(a.relatedTarget).text();
|
||||
$("span.active-tab").html(b);
|
||||
});
|
||||
},
|
||||
'headroom': function() {
|
||||
if($("#header-top").length){
|
||||
var header = document.querySelector("#header-top");
|
||||
var headroom = new Headroom(header, {
|
||||
tolerance: 5,
|
||||
offset: 205,
|
||||
classes: {
|
||||
initial: "top-fixed",
|
||||
pinned: "top-fixed-up",
|
||||
unpinned: "top-fixed-down"
|
||||
}
|
||||
});
|
||||
headroom.init();
|
||||
}
|
||||
},
|
||||
'history': function() {
|
||||
if($("#stui_history").length){
|
||||
if($.cookie("recente")){
|
||||
var json=eval("("+$.cookie("recente")+")");
|
||||
var list="";
|
||||
for(i=0;i<json.length;i++){
|
||||
list = list + "<li class='top-line'><a href='"+json[i].vod_url+"' title='"+json[i].vod_name+"'><span class='pull-right text-red'>"+json[i].vod_part+"</span>"+json[i].vod_name+"</a></li>";
|
||||
}
|
||||
$("#stui_history").append(list);
|
||||
}
|
||||
else
|
||||
$("#stui_history").append("<p style='padding: 80px 0; text-align: center'>您还没有看过影片哦</p>");
|
||||
|
||||
$(".historyclean").on("click",function(){
|
||||
$.cookie("recente",null,{expires:-1,path: '/'});
|
||||
});
|
||||
}
|
||||
},
|
||||
'collapse': function() {
|
||||
if($(".detail").length){
|
||||
$(".detail").find("a.detail-more").on("click",function(){
|
||||
$(this).parent().find(".detail-sketch").addClass("hide");
|
||||
$(this).parent().find(".detail-content").css("display","");
|
||||
$(this).remove();
|
||||
});
|
||||
}
|
||||
},
|
||||
'scrolltop': function() {
|
||||
var a = $(window);
|
||||
$scrollTopLink = $("a.backtop");
|
||||
a.scroll(function() {
|
||||
500 < $(this).scrollTop() ? $scrollTopLink.css("display", "") : $scrollTopLink.css("display", "none");
|
||||
});
|
||||
$scrollTopLink.on("click", function() {
|
||||
$("html, body").animate({
|
||||
scrollTop: 0
|
||||
}, 400);
|
||||
return !1
|
||||
});
|
||||
},
|
||||
'copylink': function(){
|
||||
if(copyshort==1){
|
||||
if($(".copylink").length){
|
||||
$.ajax({
|
||||
type : 'GET',
|
||||
url : 'https://api.weibo.com/2/short_url/shorten.json?source=2849184197&url_long='+encodeURIComponent(stui.browser.url),
|
||||
dataType : 'JSONP',
|
||||
success : function(r) {
|
||||
url_short = r.data.urls[0].url_short;
|
||||
var clipboard = new Clipboard('.copylink', {
|
||||
text: function() {
|
||||
return url_short;
|
||||
}
|
||||
});
|
||||
clipboard.on('success', function(e) {
|
||||
alert("地址复制成功,赶快分享给小伙伴吧!");
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
} else {
|
||||
if($(".copylink").length){
|
||||
var url_short = stui.browser.url;
|
||||
var clipboard = new Clipboard('.copylink', {
|
||||
text: function() {
|
||||
return url_short;
|
||||
}
|
||||
});
|
||||
clipboard.on('success', function(e) {
|
||||
alert("地址复制成功,赶快分享给小伙伴吧!");
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
'share': function(){
|
||||
if(baidushare!=0){
|
||||
$(".share").html('<span class="bds_shere"></span><a class="bds_qzone" data-cmd="qzone" title="分享到QQ空间"></a><a class="bds_tsina" data-cmd="tsina" title="分享到新浪微博"></a><a class="bds_weixin" data-cmd="weixin" title="分享到微信"></a><a class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博"></a><a class="bds_sqq" data-cmd="sqq" title="分享到QQ好友"></a><a class="bds_bdhome" data-cmd="bdhome" title="分享到百度新首页"></a><a class="bds_tqf" data-cmd="tqf" title="分享到腾讯朋友"></a><a class="bds_youdao" data-cmd="youdao" title="分享到有道云笔记"></a><a class="bds_more" data-cmd="more" title="更多"></a>');
|
||||
window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"24"},"share":{}};with(document)0[(getElementsByTagName("head")[0]||body).appendChild(createElement('script')).src=''+baidushare+'?cdnversion='+~(-new Date()/36e5)];
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
/* if(window.console&&window.console.log){
|
||||
console.log('\u9996\u6d82\u7f51\uff08v.shoutu.cn\uff09\u539f\u521b\u4f5c\u54c1');
|
||||
console.log('\u4f5c\u8005\uff1a\u5c0f\u4e8c\u54e5\uff0cQQ\uff1a726662013');
|
||||
console.log("%c\u539f\u521b\u4f5c\u54c1\u8bf7\u5c0a\u91cd\u4f5c\u8005\u52b3\u52a8\u6210\u679c\uff0c\u52ff\u5012\u5356\u5206\u4eab\uff0c\u8c22\u8c22\uff01","color:red");
|
||||
}*/
|
||||
|
||||
$(document).ready(function() {
|
||||
if(stui.browser.useragent.mobile){
|
||||
stui.mobile.slide();
|
||||
stui.mobile.popup();
|
||||
stui.mobile.mshare();
|
||||
}
|
||||
stui.images.lazyload();
|
||||
stui.images.carousel();
|
||||
stui.images.qrcode();
|
||||
stui.common.bootstrap();
|
||||
stui.common.headroom();
|
||||
stui.common.history();
|
||||
stui.common.collapse();
|
||||
stui.common.scrolltop();
|
||||
stui.common.copylink();
|
||||
stui.common.share();
|
||||
});
|
||||
90
resources/assets/js/stui_default.js
Normal file
BIN
resources/assets/player/1s_blank.mp4
Normal file
1
resources/assets/player/js/p2p-media-loader-core.min.js
vendored
Normal file
28
resources/assets/player/js/p2p-media-loader-hlsjs.min.js
vendored
Normal file
BIN
resources/assets/plugins/jquery-raty/fonts/raty.eot
Normal file
15
resources/assets/plugins/jquery-raty/fonts/raty.svg
Normal file
@@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Generated by IcoMoon</metadata>
|
||||
<defs>
|
||||
<font id="raty" horiz-adv-x="512">
|
||||
<font-face units-per-em="512" ascent="480" descent="-32" />
|
||||
<missing-glyph horiz-adv-x="512" />
|
||||
<glyph unicode=" " d="" horiz-adv-x="256" />
|
||||
<glyph unicode="" d="M256 16c-114.88 0-208 93.12-208 208s93.12 208 208 208 208-93.12 208-208-93.12-208-208-208zM351.376 284.656c3.904 3.904 3.904 10.256 0 14.16l-21.248 21.232c-3.904 3.904-10.256 3.904-14.16 0l-60.176-60.176-60.176 60.176c-3.904 3.904-10.256 3.904-14.16 0l-21.248-21.232c-3.904-3.904-3.904-10.256 0-14.16l60.192-60.192-60.192-60.16c-3.904-3.904-3.904-10.256 0-14.16l21.248-21.248c3.904-3.904 10.256-3.904 14.16 0l60.176 60.192 60.176-60.192c3.904-3.904 10.256-3.904 14.16 0l21.248 21.248c3.904 3.904 3.904 10.256 0 14.16l-60.192 60.16 60.192 60.192z" />
|
||||
<glyph unicode="" d="M256 16c-114.88 0-208 93.12-208 208s93.12 208 208 208 208-93.12 208-208-93.12-208-208-208zM256 384c-88.352 0-160-71.648-160-160s71.648-160 160-160c88.368 0 160 71.648 160 160s-71.632 160-160 160zM328.592 167.44l-16.224-16.224c-2.976-2.976-7.808-2.976-10.8 0l-45.92 45.92-45.92-45.92c-2.992-2.976-7.808-2.976-10.8 0l-16.224 16.224c-2.976 2.976-2.976 7.808 0 10.8l45.936 45.904-45.936 45.92c-2.976 2.992-2.976 7.824 0 10.816l16.224 16.208c2.992 2.992 7.808 2.992 10.8 0l45.92-45.92 45.92 45.92c2.992 2.992 7.824 2.992 10.8 0l16.224-16.208c2.976-2.992 2.976-7.824 0-10.816l-45.936-45.92 45.936-45.904c2.976-2.992 2.976-7.84 0-10.8z" />
|
||||
<glyph unicode="" d="M475.428 290.572q0-6.286-7.428-13.714l-103.714-101.143 24.572-142.857q0.286-2 0.286-5.714 0-6-3-10.143t-8.714-4.143q-5.428 0-11.428 3.428l-128.286 67.428-128.286-67.428q-6.285-3.428-11.428-3.428-6 0-9 4.143t-3 10.143q0 1.714 0.572 5.714l24.572 142.857-104 101.143q-7.143 7.714-7.143 13.714 0 10.572 16 13.143l143.428 20.857 64.286 130q5.428 11.714 14 11.714t14-11.714l64.286-130 143.429-20.857q16-2.572 16-13.143z" horiz-adv-x="476" />
|
||||
<glyph unicode="" d="M324.857 188.572l87.428 84.857-120.572 17.715-54 109.143-54-109.143-120.572-17.714 87.428-84.857-20.857-120.286 108 56.857 107.714-56.857zM475.428 290.572q0-6.286-7.428-13.714l-103.714-101.143 24.572-142.857q0.286-2 0.286-5.714 0-14.286-11.714-14.286-5.428 0-11.428 3.428l-128.286 67.428-128.286-67.428q-6.285-3.428-11.428-3.428-6 0-9 4.143t-3 10.143q0 1.714 0.572 5.714l24.572 142.857-104 101.143q-7.143 7.714-7.143 13.714 0 10.572 16 13.143l143.428 20.857 64.286 130q5.428 11.714 14 11.714t14-11.714l64.286-130 143.429-20.857q16-2.572 16-13.143z" horiz-adv-x="476" />
|
||||
<glyph unicode="" d="M338.857 202l73.428 71.428-120.572 17.714-8.572 17.143-45.428 92v-275.143l16.857-8.857 90.857-48-17.143 101.428-3.428 18.857zM468 276.857l-103.714-101.143 24.572-142.857q1.428-9.428-1.714-14.714t-9.714-5.286q-4.857 0-11.428 3.428l-128.286 67.428-128.286-67.428q-6.572-3.428-11.428-3.428-6.572 0-9.715 5.286t-1.715 14.714l24.572 142.857-104 101.143q-9.143 9.143-6.572 17t15.428 9.857l143.429 20.857 64.286 130q5.714 11.714 14 11.714 8 0 14-11.714l64.286-130 143.429-20.857q12.857-2 15.428-9.857t-6.857-17z" horiz-adv-x="476" />
|
||||
</font></defs></svg>
|
||||
|
After Width: | Height: | Size: 3.2 KiB |
BIN
resources/assets/plugins/jquery-raty/fonts/raty.ttf
Normal file
BIN
resources/assets/plugins/jquery-raty/fonts/raty.woff
Normal file
BIN
resources/assets/plugins/jquery-raty/images/cancel-off.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/assets/plugins/jquery-raty/images/cancel-on.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
resources/assets/plugins/jquery-raty/images/star-half.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
resources/assets/plugins/jquery-raty/images/star-off.png
Normal file
|
After Width: | Height: | Size: 781 B |
BIN
resources/assets/plugins/jquery-raty/images/star-on.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
46
resources/assets/plugins/jquery-raty/jquery.raty.css
Normal file
@@ -0,0 +1,46 @@
|
||||
.cancel-on-png, .cancel-off-png, .star-on-png, .star-off-png, .star-half-png {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "raty";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
src: url("./fonts/raty.eot");
|
||||
src: url("./fonts/raty.eot?#iefix") format("embedded-opentype");
|
||||
src: url("./fonts/raty.svg#raty") format("svg");
|
||||
src: url("./fonts/raty.ttf") format("truetype");
|
||||
src: url("./fonts/raty.woff") format("woff");
|
||||
}
|
||||
|
||||
.cancel-on-png, .cancel-off-png, .star-on-png, .star-off-png, .star-half-png {
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
font-family: "raty";
|
||||
font-style: normal;
|
||||
font-variant: normal;
|
||||
font-weight: normal;
|
||||
line-height: 1;
|
||||
speak: none;
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
.cancel-on-png:before {
|
||||
content: "\e600";
|
||||
}
|
||||
|
||||
.cancel-off-png:before {
|
||||
content: "\e601";
|
||||
}
|
||||
|
||||
.star-on-png:before {
|
||||
content: "\f005";
|
||||
}
|
||||
|
||||
.star-off-png:before {
|
||||
content: "\f006";
|
||||
}
|
||||
|
||||
.star-half-png:before {
|
||||
content: "\f123";
|
||||
}
|
||||
777
resources/assets/plugins/jquery-raty/jquery.raty.js
Normal file
@@ -0,0 +1,777 @@
|
||||
/*!
|
||||
* Raty - A Star Rating Plugin
|
||||
*
|
||||
* The MIT License
|
||||
*
|
||||
* author: Washington Botelho
|
||||
* github: wbotelhos/raty
|
||||
* version: 3.1.0
|
||||
*
|
||||
*/
|
||||
|
||||
(function(root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
define(['jquery'], factory);
|
||||
} else if (typeof module === 'object' && module.exports) {
|
||||
module.exports = factory(require('jquery'));
|
||||
} else {
|
||||
factory(root.jQuery);
|
||||
}
|
||||
}(this, function($) {
|
||||
'use strict';
|
||||
|
||||
$.raty = {
|
||||
cancelButton: false,
|
||||
cancelClass: 'raty-cancel',
|
||||
cancelHint: 'Cancel this rating!',
|
||||
cancelOff: 'cancel-off.png',
|
||||
cancelOn: 'cancel-on.png',
|
||||
cancelPlace: 'left',
|
||||
click: undefined,
|
||||
half: false,
|
||||
halfShow: true,
|
||||
hints: ['bad', 'poor', 'regular', 'good', 'gorgeous'],
|
||||
iconRange: undefined,
|
||||
iconRangeSame: false,
|
||||
mouseout: undefined,
|
||||
mouseover: undefined,
|
||||
noRatedMsg: 'Not rated yet!',
|
||||
number: 5,
|
||||
numberMax: 20,
|
||||
path: undefined,
|
||||
precision: false,
|
||||
readOnly: false,
|
||||
round: { down: 0.25, full: 0.6, up: 0.76 },
|
||||
score: undefined,
|
||||
scoreName: 'score',
|
||||
single: false,
|
||||
space: true,
|
||||
starHalf: 'star-half.png',
|
||||
starOff: 'star-off.png',
|
||||
starOn: 'star-on.png',
|
||||
starType: 'img',
|
||||
target: undefined,
|
||||
targetFormat: '{score}',
|
||||
targetKeep: false,
|
||||
targetScore: undefined,
|
||||
targetText: '',
|
||||
targetType: 'hint'
|
||||
};
|
||||
|
||||
$.fn.raty = function(options) {
|
||||
return this.each(function() {
|
||||
var instance = new $.raty.Raty(this, options);
|
||||
|
||||
return instance._create();
|
||||
});
|
||||
};
|
||||
|
||||
$.raty.Raty = (function() {
|
||||
var Raty = function(element, options) {
|
||||
this.element = element;
|
||||
this.self = $(element);
|
||||
this.opt = $.extend(true, {}, $.raty, options, this.self.data());
|
||||
};
|
||||
|
||||
Raty.prototype = {
|
||||
_create: function() {
|
||||
this._executeCallbacks();
|
||||
this._adjustNumber();
|
||||
this._adjustHints();
|
||||
|
||||
this.opt.score = this._adjustedScore(this.opt.score);
|
||||
|
||||
if (this.opt.starType !== 'img') {
|
||||
this._adjustStarName();
|
||||
}
|
||||
|
||||
this._setPath();
|
||||
this._createStars();
|
||||
|
||||
if (this.opt.cancelButton) {
|
||||
this._createCancel();
|
||||
}
|
||||
|
||||
if (this.opt.precision) {
|
||||
this._adjustPrecision();
|
||||
}
|
||||
|
||||
this._createScore();
|
||||
|
||||
this._apply(this.opt.score);
|
||||
this._setTitle(this.opt.score);
|
||||
this._target(this.opt.score);
|
||||
|
||||
if (this.opt.readOnly) {
|
||||
this._lock();
|
||||
} else {
|
||||
this.element.style.cursor = 'pointer';
|
||||
|
||||
this._binds();
|
||||
}
|
||||
|
||||
this.self.data('raty', this);
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_adjustedScore: function(score) {
|
||||
if (score || score === 0) {
|
||||
return this._between(score, 0, this.opt.number);
|
||||
}
|
||||
},
|
||||
|
||||
_adjustHints: function() {
|
||||
if (!this.opt.hints) {
|
||||
this.opt.hints = [];
|
||||
}
|
||||
|
||||
if (!this.opt.halfShow && !this.opt.half) {
|
||||
return;
|
||||
}
|
||||
|
||||
var steps = this.opt.precision ? 10 : 2;
|
||||
|
||||
for (var i = 0; i < this.opt.number; i++) {
|
||||
var group = this.opt.hints[i];
|
||||
|
||||
if (Object.prototype.toString.call(group) !== '[object Array]') {
|
||||
group = [group];
|
||||
}
|
||||
|
||||
this.opt.hints[i] = [];
|
||||
|
||||
for (var j = 0; j < steps; j++) {
|
||||
var hint = group[j];
|
||||
var last = group[group.length - 1];
|
||||
|
||||
if (last === undefined) {
|
||||
last = null;
|
||||
}
|
||||
|
||||
this.opt.hints[i][j] = hint === undefined ? last : hint;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_adjustNumber: function() {
|
||||
this.opt.number = this._between(this.opt.number, 1, this.opt.numberMax);
|
||||
},
|
||||
|
||||
_adjustPrecision: function() {
|
||||
this.opt.half = true;
|
||||
},
|
||||
|
||||
_adjustStarName: function() {
|
||||
var replaces = ['cancelOff', 'cancelOn', 'starHalf', 'starOff', 'starOn'];
|
||||
|
||||
this.opt.path = '';
|
||||
|
||||
for (var i = 0; i < replaces.length; i++) {
|
||||
this.opt[replaces[i]] = this.opt[replaces[i]].replace('.', '-');
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_apply: function(score) {
|
||||
this._fill(score);
|
||||
|
||||
if (score) {
|
||||
if (score > 0) {
|
||||
this.scoreField.val(score);
|
||||
}
|
||||
|
||||
this._roundStars(score);
|
||||
}
|
||||
},
|
||||
|
||||
_attributesForIndex: function(i) {
|
||||
var name = this._nameForIndex(i);
|
||||
var attributes = { alt: i, src: this.opt.path + this.opt[name] };
|
||||
|
||||
if (this.opt.starType !== 'img') {
|
||||
attributes = { 'data-alt': i, 'class': this.opt[name] };
|
||||
}
|
||||
|
||||
attributes.title = this._getHint(i);
|
||||
|
||||
return attributes;
|
||||
},
|
||||
|
||||
_between: function(value, min, max) {
|
||||
return Math.min(Math.max(parseFloat(value), min), max);
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_binds: function() {
|
||||
if (this.cancelButton) {
|
||||
this._bindOverCancel();
|
||||
this._bindClickCancel();
|
||||
this._bindOutCancel();
|
||||
}
|
||||
|
||||
this._bindOver();
|
||||
this._bindClick();
|
||||
this._bindOut();
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_bindClick: function() {
|
||||
var that = this;
|
||||
|
||||
this.stars.on('click.raty', function(evt) {
|
||||
if (that.self.data('readonly')) {
|
||||
return;
|
||||
}
|
||||
|
||||
var execute = true;
|
||||
var score = (that.opt.half || that.opt.precision) ? that.self.data('score') : (this.alt || $(this).data('alt'));
|
||||
|
||||
if (that.opt.half && !that.opt.precision) {
|
||||
score = that._roundHalfScore(score);
|
||||
}
|
||||
|
||||
if (that.opt.click) {
|
||||
execute = that.opt.click.call(that.element, +score, evt);
|
||||
}
|
||||
|
||||
if (execute || execute === undefined) {
|
||||
that._apply(+score);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_bindClickCancel: function() {
|
||||
this.cancelButton.on('click.raty', function(evt) {
|
||||
this.scoreField.removeAttr('value');
|
||||
|
||||
if (this.opt.click) {
|
||||
this.opt.click.call(this.element, null, evt);
|
||||
}
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_bindOut: function() {
|
||||
this.self.on('mouseleave.raty', function(evt) {
|
||||
var score = +this.scoreField.val() || undefined;
|
||||
|
||||
this._apply(score);
|
||||
this._target(score, evt);
|
||||
this._resetTitle();
|
||||
|
||||
if (this.opt.mouseout) {
|
||||
this.opt.mouseout.call(this.element, score, evt);
|
||||
}
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_bindOutCancel: function() {
|
||||
var that = this;
|
||||
|
||||
this.cancelButton.on('mouseleave.raty', function(evt) {
|
||||
var icon = that.opt.cancelOff;
|
||||
|
||||
if (that.opt.starType !== 'img') {
|
||||
icon = that.opt.cancelClass + ' ' + icon;
|
||||
}
|
||||
|
||||
that._setIcon(this, icon);
|
||||
|
||||
if (that.opt.mouseout) {
|
||||
var score = +that.scoreField.val() || undefined;
|
||||
|
||||
that.opt.mouseout.call(that.element, score, evt);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_bindOver: function() {
|
||||
var that = this;
|
||||
var action = that.opt.half ? 'mousemove.raty' : 'mouseover.raty';
|
||||
|
||||
this.stars.on(action, function(evt) {
|
||||
var score = that._getScoreByPosition(evt, this);
|
||||
|
||||
that._fill(score);
|
||||
|
||||
if (that.opt.half) {
|
||||
that._roundStars(score, evt);
|
||||
that._setTitle(score, evt);
|
||||
|
||||
that.self.data('score', score);
|
||||
}
|
||||
|
||||
that._target(score, evt);
|
||||
|
||||
if (that.opt.mouseover) {
|
||||
that.opt.mouseover.call(that.element, score, evt);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_bindOverCancel: function() {
|
||||
var that = this;
|
||||
|
||||
this.cancelButton.on('mouseover.raty', function(evt) {
|
||||
if (that.self.data('readonly')) {
|
||||
return;
|
||||
}
|
||||
|
||||
var starOff = that.opt.path + that.opt.starOff;
|
||||
var icon = that.opt.cancelOn;
|
||||
|
||||
if (that.opt.starType === 'img') {
|
||||
that.stars.attr('src', starOff);
|
||||
} else {
|
||||
icon = that.opt.cancelClass + ' ' + icon;
|
||||
|
||||
that.stars.attr('class', starOff);
|
||||
}
|
||||
|
||||
that._setIcon(this, icon);
|
||||
that._target(null, evt);
|
||||
|
||||
if (that.opt.mouseover) {
|
||||
that.opt.mouseover.call(that.element, null);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_buildScoreField: function() {
|
||||
return $('<input />', { name: this.opt.scoreName, type: 'hidden' }).appendTo(this.self);
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_createCancel: function() {
|
||||
var icon = this.opt.path + this.opt.cancelOff;
|
||||
var button = $('<' + this.opt.starType + ' />', { title: this.opt.cancelHint, 'class': this.opt.cancelClass });
|
||||
|
||||
if (this.opt.starType === 'img') {
|
||||
button.attr({ src: icon, alt: 'x' });
|
||||
} else {
|
||||
// TODO: use $.data
|
||||
button.attr('data-alt', 'x').addClass(icon);
|
||||
}
|
||||
|
||||
if (this.opt.cancelPlace === 'left') {
|
||||
this.self.prepend(' ').prepend(button);
|
||||
} else {
|
||||
this.self.append(' ').append(button);
|
||||
}
|
||||
|
||||
this.cancelButton = button;
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_createScore: function() {
|
||||
var score = $(this.opt.targetScore);
|
||||
|
||||
this.scoreField = score.length ? score : this._buildScoreField();
|
||||
},
|
||||
|
||||
_createStars: function() {
|
||||
for (var i = 1; i <= this.opt.number; i++) {
|
||||
var attributes = this._attributesForIndex(i);
|
||||
|
||||
$('<' + this.opt.starType + ' />', attributes).appendTo(this.element);
|
||||
|
||||
if (this.opt.space && i < this.opt.number) {
|
||||
this.self.append(' ');
|
||||
}
|
||||
}
|
||||
|
||||
this.stars = this.self.children(this.opt.starType);
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_error: function(message) {
|
||||
$(this).text(message);
|
||||
|
||||
$.error(message);
|
||||
},
|
||||
|
||||
_executeCallbacks: function() {
|
||||
var options = ['number', 'readOnly', 'score', 'scoreName', 'target', 'path'];
|
||||
|
||||
for (var i = 0; i < options.length; i++) {
|
||||
if (typeof this.opt[options[i]] === 'function') {
|
||||
var value = this.opt[options[i]].call(this.element);
|
||||
|
||||
if (value) {
|
||||
this.opt[options[i]] = value;
|
||||
} else {
|
||||
delete this.opt[options[i]];
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_fill: function(score) {
|
||||
var hash = 0;
|
||||
|
||||
if (this.opt.iconRangeSame && this.opt.iconRange) {
|
||||
while (hash < this.opt.iconRange.length && this.opt.iconRange[hash].range < score) {
|
||||
hash++;
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 1; i <= this.stars.length; i++) {
|
||||
var icon;
|
||||
var star = this.stars[i - 1];
|
||||
var turnOn = this._turnOn(i, score);
|
||||
|
||||
if (this.opt.iconRange && this.opt.iconRange.length > hash) {
|
||||
var irange = this.opt.iconRange[hash];
|
||||
|
||||
icon = this._getRangeIcon(irange, turnOn);
|
||||
|
||||
if (i <= irange.range) {
|
||||
this._setIcon(star, icon);
|
||||
}
|
||||
|
||||
if (i === irange.range) {
|
||||
hash++;
|
||||
}
|
||||
} else {
|
||||
icon = this.opt[turnOn ? 'starOn' : 'starOff'];
|
||||
|
||||
this._setIcon(star, icon);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
_getDecimal: function(number, fractions) {
|
||||
var decimal = number.toString().split('.')[1];
|
||||
var result = 0;
|
||||
|
||||
if (decimal) {
|
||||
result = parseInt(decimal.slice(0, fractions), 10);
|
||||
|
||||
if (decimal.slice(1, 5) === '9999') {
|
||||
result++;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_getRangeIcon: function(irange, turnOn) {
|
||||
return turnOn ? irange.on || this.opt.starOn : irange.off || this.opt.starOff;
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_getScoreByPosition: function(evt, icon) {
|
||||
var score = parseInt(icon.alt || icon.getAttribute('data-alt'), 10);
|
||||
|
||||
if (this.opt.half) {
|
||||
var size = this._getWidth();
|
||||
var percent = parseFloat((evt.pageX - $(icon).offset().left) / size);
|
||||
|
||||
score = score - 1 + percent;
|
||||
}
|
||||
|
||||
return score;
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_getHint: function(score, evt) {
|
||||
if (score !== 0 && !score) {
|
||||
return this.opt.noRatedMsg;
|
||||
}
|
||||
|
||||
var decimal = this._getDecimal(score, 1);
|
||||
var integer = Math.ceil(score);
|
||||
var group = this.opt.hints[(integer || 1) - 1];
|
||||
var hint = group;
|
||||
var set = !evt || this.isMove;
|
||||
|
||||
if (this.opt.precision) {
|
||||
if (set) {
|
||||
decimal = decimal === 0 ? 9 : decimal - 1;
|
||||
}
|
||||
|
||||
hint = group[decimal];
|
||||
} else if (this.opt.halfShow || this.opt.half) {
|
||||
decimal = set && decimal === 0 ? 1 : decimal > 5 ? 1 : 0;
|
||||
|
||||
hint = group[decimal];
|
||||
}
|
||||
|
||||
return hint === '' ? '' : hint || score;
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_getWidth: function() {
|
||||
var width = this.stars[0].width || parseFloat(this.stars.eq(0).css('font-size'));
|
||||
|
||||
if (!width) {
|
||||
this._error('Could not get the icon width!');
|
||||
}
|
||||
|
||||
return width;
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_lock: function() {
|
||||
var hint = this._getHint(this.scoreField.val());
|
||||
|
||||
this.element.style.cursor = '';
|
||||
this.element.title = hint;
|
||||
|
||||
this.scoreField.prop('readonly', true);
|
||||
this.stars.prop('title', hint);
|
||||
|
||||
if (this.cancelButton) {
|
||||
this.cancelButton.hide();
|
||||
}
|
||||
|
||||
this.self.data('readonly', true);
|
||||
},
|
||||
|
||||
_nameForIndex: function(i) {
|
||||
return this.opt.score && this.opt.score >= i ? 'starOn' : 'starOff';
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_resetTitle: function() {
|
||||
for (var i = 0; i < this.opt.number; i++) {
|
||||
this.stars[i].title = this._getHint(i + 1);
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_roundHalfScore: function(score) {
|
||||
var integer = parseInt(score, 10);
|
||||
var decimal = this._getDecimal(score, 1);
|
||||
|
||||
if (decimal !== 0) {
|
||||
decimal = decimal > 5 ? 1 : 0.5;
|
||||
}
|
||||
|
||||
return integer + decimal;
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_roundStars: function(score, evt) {
|
||||
var name = this._starName(score, evt);
|
||||
|
||||
if (name) {
|
||||
var icon = this.opt[name];
|
||||
var star = this.stars[Math.ceil(score) - 1];
|
||||
|
||||
this._setIcon(star, icon);
|
||||
} // Full down: [x.00 .. x.25]
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_setIcon: function(star, icon) {
|
||||
star[this.opt.starType === 'img' ? 'src' : 'className'] = this.opt.path + icon;
|
||||
},
|
||||
|
||||
_setPath: function() {
|
||||
this.opt.path = this.opt.path || '';
|
||||
|
||||
if (this.opt.path && this.opt.path.slice(-1)[0] !== '/') {
|
||||
this.opt.path += '/';
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_setTarget: function(target, score) {
|
||||
if (score) {
|
||||
score = this.opt.targetFormat.toString().replace('{score}', score);
|
||||
}
|
||||
|
||||
if (target.is(':input')) {
|
||||
target.val(score);
|
||||
} else {
|
||||
target.html(score);
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_setTitle: function(score, evt) {
|
||||
if (score) {
|
||||
var integer = parseInt(Math.ceil(score), 10);
|
||||
var star = this.stars[integer - 1];
|
||||
|
||||
star.title = this._getHint(score, evt);
|
||||
}
|
||||
},
|
||||
|
||||
_starName: function(score, evt) {
|
||||
var decimal = +(score % 1).toFixed(2);
|
||||
|
||||
if (evt || this.isMove) {
|
||||
return decimal > 0.5 ? 'starOn' : 'starHalf';
|
||||
}
|
||||
|
||||
if (decimal <= this.opt.round.down) { // Down: [x.00 ... x.25]
|
||||
return;
|
||||
}
|
||||
|
||||
if (this.opt.halfShow && decimal < this.opt.round.up) { // Half: [x.26 ... x.75]
|
||||
return 'starHalf';
|
||||
}
|
||||
|
||||
if (decimal < this.opt.round.full) { // Off: [x.26 .. x.6]
|
||||
return 'starOff';
|
||||
}
|
||||
|
||||
return 'starOn'; // Up: [x.26 ...] || [x.6 ...]
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_target: function(score, evt) {
|
||||
if (this.opt.target) {
|
||||
var target = $(this.opt.target);
|
||||
|
||||
if (!target.length) {
|
||||
this._error('Target selector invalid or missing!');
|
||||
}
|
||||
|
||||
var mouseover = evt && evt.type === 'mouseover';
|
||||
|
||||
if (score === undefined) {
|
||||
score = this.opt.targetText;
|
||||
} else if (score === null) {
|
||||
score = mouseover ? this.opt.cancelHint : this.opt.targetText;
|
||||
} else {
|
||||
if (this.opt.targetType === 'hint') {
|
||||
score = this._getHint(score, evt);
|
||||
} else if (this.opt.precision) {
|
||||
score = parseFloat(score).toFixed(1);
|
||||
}
|
||||
|
||||
var mousemove = evt && evt.type === 'mousemove';
|
||||
|
||||
if (!mouseover && !mousemove && !this.opt.targetKeep) {
|
||||
score = this.opt.targetText;
|
||||
}
|
||||
}
|
||||
|
||||
this._setTarget(target, score);
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_turnOn: function(i, score) {
|
||||
return this.opt.single ? (i === score) : (i <= score);
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
_unlock: function() {
|
||||
this.element.style.cursor = 'pointer';
|
||||
this.element.removeAttribute('title');
|
||||
|
||||
this.scoreField.removeAttr('readonly');
|
||||
|
||||
this.self.data('readonly', false);
|
||||
|
||||
this._resetTitle();
|
||||
|
||||
if (this.cancelButton) {
|
||||
this.cancelButton.css('display', '');
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
cancel: function(click) {
|
||||
if (this.self.data('readonly') !== true) {
|
||||
this[click ? 'click' : 'score'].call(this, null);
|
||||
|
||||
this.scoreField.removeAttr('value');
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
click: function(score) {
|
||||
if (this.self.data('readonly') !== true) {
|
||||
score = this._adjustedScore(score);
|
||||
|
||||
this._apply(score);
|
||||
|
||||
if (this.opt.click) {
|
||||
this.opt.click.call(this.element, score, $.Event('click'));
|
||||
}
|
||||
|
||||
this._target(score);
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
getScore: function() {
|
||||
var score = [];
|
||||
var value ;
|
||||
|
||||
value = this.scoreField.val();
|
||||
|
||||
score.push(value ? +value : undefined);
|
||||
|
||||
return (score.length > 1) ? score : score[0];
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
move: function(score) {
|
||||
var integer = parseInt(score, 10);
|
||||
var decimal = this._getDecimal(score, 1);
|
||||
|
||||
if (integer >= this.opt.number) {
|
||||
integer = this.opt.number - 1;
|
||||
decimal = 10;
|
||||
}
|
||||
|
||||
var width = this._getWidth();
|
||||
var steps = width / 10;
|
||||
var star = $(this.stars[integer]);
|
||||
var percent = star.offset().left + steps * decimal;
|
||||
var evt = $.Event('mousemove', { pageX: percent });
|
||||
|
||||
this.isMove = true;
|
||||
|
||||
star.trigger(evt);
|
||||
|
||||
this.isMove = false;
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
readOnly: function(readonly) {
|
||||
if (this.self.data('readonly') !== readonly) {
|
||||
if (readonly) {
|
||||
this.self.off('.raty').children(this.opt.starType).off('.raty');
|
||||
|
||||
this._lock();
|
||||
} else {
|
||||
this._binds();
|
||||
this._unlock();
|
||||
}
|
||||
|
||||
this.self.data('readonly', readonly);
|
||||
}
|
||||
},
|
||||
|
||||
// TODO: model spec
|
||||
score: function() {
|
||||
return arguments.length ? this.setScore.apply(this, arguments) : this.getScore();
|
||||
},
|
||||
|
||||
setScore: function(score) {
|
||||
if (this.self.data('readonly') !== true) {
|
||||
score = this._adjustedScore(score);
|
||||
|
||||
this._apply(score);
|
||||
this._target(score);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
return Raty;
|
||||
})();
|
||||
}));
|
||||
58
resources/views/themexingkong/catalog.blade.php
Executable file
@@ -0,0 +1,58 @@
|
||||
@extends('themes::themexingkong.layout')
|
||||
|
||||
@php
|
||||
$years = Cache::remember('all_years', \Backpack\Settings\app\Models\Setting::get('site_cache_ttl', 5 * 60), function () {
|
||||
return \VsMov\Core\Models\Movie::select('publish_year')->distinct()->pluck('publish_year')->sortDesc();
|
||||
});
|
||||
@endphp
|
||||
|
||||
@push('header')
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="col-lg-wide-8 col-xs-1 padding-0">
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box">
|
||||
<div class="stui-pannel_hd">
|
||||
@include('themes::themexingkong.inc.catalog_filter')
|
||||
</div>
|
||||
<div class="stui-pannel_hd">
|
||||
<h1>{{ $section_name }}</h1>
|
||||
</div>
|
||||
<div class="stui-pannel_bd">
|
||||
<ul class="stui-vodlist clearfix">
|
||||
@foreach ($data as $movie)
|
||||
<li class="col-md-5 col-sm-4 col-xs-3">
|
||||
<div class="stui-vodlist__box">
|
||||
<a class="stui-vodlist__thumb lazyload" href="{{ $movie->getUrl() }}"
|
||||
title="{{ $movie->name }}" data-original="{{ $movie->getThumbUrl() }}">
|
||||
<span class="play hidden-xs"></span>
|
||||
<span class="pic-text text-right">{{ $movie->episode_current }}</span>
|
||||
</a>
|
||||
<div class="stui-vodlist__detail">
|
||||
<h4 class="title text-overflow">
|
||||
<a href="{{ $movie->getUrl() }}"
|
||||
title="{{ $movie->name }}">{{ $movie->name }}</a>
|
||||
</h4>
|
||||
<p class="text text-overflow text-muted hidden-xs">{{ $movie->origin_name }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ $data->appends(request()->all())->links('themes::themexingkong.inc.pagination') }}
|
||||
</div>
|
||||
@include('themes::themexingkong.inc.right_bar')
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
$(".score").each(function() {
|
||||
var star = $(this).find(".branch").text().replace(".", "0.");
|
||||
$(this).find("#score").css("width", "" + star + "%");
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
425
resources/views/themexingkong/episode.blade.php
Executable file
@@ -0,0 +1,425 @@
|
||||
@extends('themes::themexingkong.layout')
|
||||
|
||||
@push('header')
|
||||
<style>
|
||||
#wrapper-video {
|
||||
height: 505px !important;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 500px) {
|
||||
#wrapper-video {
|
||||
height: 210px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 501px) and (max-width: 767px) {
|
||||
#wrapper-video {
|
||||
height: 286px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 768px) and (max-width: 991px) {
|
||||
#wrapper-video {
|
||||
height: 388px !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 992px) and (max-width: 1199px) {
|
||||
#wrapper-video {
|
||||
height: 525px !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="col-lg-wide-8 col-xs-1 padding-0">
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box">
|
||||
<div class="stui-pannel-bd">
|
||||
<div class="stui-player col-pd">
|
||||
<div id="wrapper-video" class="stui-player__video clearfix">
|
||||
|
||||
</div>
|
||||
<div class="stui-player__detail detail">
|
||||
<ul class="more-btn">
|
||||
<li>
|
||||
<div class="" style="display: flex;gap:5px">
|
||||
@foreach ($currentMovie->episodes->where('slug', $episode->slug)->where('server', $episode->server) as $server)
|
||||
<button onclick="chooseStreamingServer(this)" data-type="{{ $server->type }}"
|
||||
data-id="{{ $server->id }}" data-link="{{ $server->link }}"
|
||||
class="streaming-server btn btn-default">VIP
|
||||
#{{ $loop->index + 1 }}</button>
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<button class="btn btn-default" id="report_error">Báo lỗi
|
||||
<i class="icon iconfont icon-close "></i>
|
||||
</button>
|
||||
</li>
|
||||
</ul>
|
||||
<h1 class="title">
|
||||
<a href="{{ $episode->getUrl() }}">Tập {{ $episode->name }}</a>
|
||||
</h1>
|
||||
<p>
|
||||
<span class="title">Đổi nguồn phát VIP #1, VIP #2 khi lỗi.</span>
|
||||
|
||||
</p>
|
||||
<div class="col-sm-12">
|
||||
<div id="movies-rating-star"></div>
|
||||
({{ $currentMovie->getRatingStar() }}
|
||||
sao
|
||||
/
|
||||
{{ $currentMovie->getRatingCount() }} đánh giá)
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@foreach ($currentMovie->episodes->sortBy([['server', 'asc']])->groupBy('server') as $server => $data)
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box b playlist mb">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head bottom-line active clearfix">
|
||||
<span class="more text-muted pull-right"></span>
|
||||
<h3 class="title"> Phim {{ $currentMovie->name }} - {{ $server }} </h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd col-pd clearfix">
|
||||
<ul class="stui-content__playlist clearfix">
|
||||
@foreach ($data->sortByDesc('name', SORT_NATURAL)->groupBy('name') as $name => $item)
|
||||
<li class="@if ($item->contains($episode)) active @endif"><a
|
||||
href="{{ $item->sortByDesc('type')->first()->getUrl() }}">Tập
|
||||
{{ $name }}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head clearfix">
|
||||
<h3 class="title">
|
||||
<img src="{{ asset('themes/xingkong/img/icon_30.png') }}" /> Nội dung phim
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd">
|
||||
<p class="col-pd detail">
|
||||
<span class="detail-sketch">
|
||||
{!! Str::limit(strip_tags($currentMovie->content), 300, '...') !!}
|
||||
</span>
|
||||
<span class="detail-content" style="display: none;">
|
||||
{!! strip_tags($currentMovie->content) !!}
|
||||
</span>
|
||||
<a class="detail-more" href="javascript:;">Xem thêm <i class="icon iconfont icon-moreunfold"></i>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@include('themes::themexingkong.inc.related_movie')
|
||||
@include('themes::themexingkong.inc.comment')
|
||||
</div>
|
||||
@include('themes::themexingkong.inc.right_bar')
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script src="/themes/xingkong/player/js/p2p-media-loader-core.min.js"></script>
|
||||
<script src="/themes/xingkong/player/js/p2p-media-loader-hlsjs.min.js"></script>
|
||||
|
||||
<script src="/js/jwplayer-8.9.3.js"></script>
|
||||
<script src="/js/hls.min.js"></script>
|
||||
<script src="/js/jwplayer.hlsjs.min.js"></script>
|
||||
|
||||
<script>
|
||||
var episode_id = {{ $episode->id }};
|
||||
const wrapper = document.getElementById('wrapper-video');
|
||||
const vastAds = "{{ Setting::get('jwplayer_advertising_file') }}";
|
||||
|
||||
function chooseStreamingServer(el) {
|
||||
const type = el.dataset.type;
|
||||
const link = el.dataset.link.replace(/^http:\/\//i, 'https://');
|
||||
const id = el.dataset.id;
|
||||
|
||||
const newUrl =
|
||||
location.protocol +
|
||||
"//" +
|
||||
location.host +
|
||||
location.pathname.replace(`-${episode_id}`, `-${id}`);
|
||||
|
||||
history.pushState({
|
||||
path: newUrl
|
||||
}, "", newUrl);
|
||||
episode_id = id;
|
||||
|
||||
Array.from(document.getElementsByClassName('streaming-server')).forEach(server => {
|
||||
server.classList.remove('btn-primary');
|
||||
})
|
||||
el.classList.add('btn-primary');
|
||||
renderPlayer(type, link, id);
|
||||
}
|
||||
|
||||
function renderPlayer(type, link, id) {
|
||||
if (type == 'embed') {
|
||||
if (vastAds) {
|
||||
wrapper.innerHTML = `<div id="fake_jwplayer"></div>`;
|
||||
const fake_player = jwplayer("fake_jwplayer");
|
||||
const objSetupFake = {
|
||||
key: "{{ Setting::get('jwplayer_license') }}",
|
||||
aspectratio: "16:9",
|
||||
width: "100%",
|
||||
file: "/themes/xingkong/player/1s_blank.mp4",
|
||||
volume: 100,
|
||||
mute: false,
|
||||
autostart: true,
|
||||
advertising: {
|
||||
tag: "{{ Setting::get('jwplayer_advertising_file') }}",
|
||||
client: "vast",
|
||||
vpaidmode: "insecure",
|
||||
skipoffset: {{ (int) Setting::get('jwplayer_advertising_skipoffset') ?: 5 }}, // Bỏ qua quảng cáo trong vòng 5 giây
|
||||
skipmessage: "Bỏ qua sau xx giây",
|
||||
skiptext: "Bỏ qua"
|
||||
}
|
||||
};
|
||||
fake_player.setup(objSetupFake);
|
||||
fake_player.on('complete', function(event) {
|
||||
$("#fake_jwplayer").remove();
|
||||
wrapper.innerHTML = `<iframe width="100%" height="100%" src="${link}" frameborder="0" scrolling="no"
|
||||
allowfullscreen="" allow='autoplay'></iframe>`
|
||||
fake_player.remove();
|
||||
});
|
||||
|
||||
fake_player.on('adSkipped', function(event) {
|
||||
$("#fake_jwplayer").remove();
|
||||
wrapper.innerHTML = `<iframe width="100%" height="100%" src="${link}" frameborder="0" scrolling="no"
|
||||
allowfullscreen="" allow='autoplay'></iframe>`
|
||||
fake_player.remove();
|
||||
});
|
||||
|
||||
fake_player.on('adComplete', function(event) {
|
||||
$("#fake_jwplayer").remove();
|
||||
wrapper.innerHTML = `<iframe width="100%" height="100%" src="${link}" frameborder="0" scrolling="no"
|
||||
allowfullscreen="" allow='autoplay'></iframe>`
|
||||
fake_player.remove();
|
||||
});
|
||||
} else {
|
||||
if (wrapper) {
|
||||
wrapper.innerHTML = `<iframe width="100%" height="100%" src="${link}" frameborder="0" scrolling="no"
|
||||
allowfullscreen="" allow='autoplay'></iframe>`
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (type == 'm3u8' || type == 'mp4') {
|
||||
wrapper.innerHTML = `<div id="jwplayer"></div>`;
|
||||
const player = jwplayer("jwplayer");
|
||||
const objSetup = {
|
||||
key: "{{ Setting::get('jwplayer_license') }}",
|
||||
aspectratio: "16:9",
|
||||
width: "100%",
|
||||
file: link,
|
||||
playbackRateControls: true,
|
||||
playbackRates: [0.25, 0.75, 1, 1.25],
|
||||
sharing: {
|
||||
sites: [
|
||||
"reddit",
|
||||
"facebook",
|
||||
"twitter",
|
||||
"googleplus",
|
||||
"email",
|
||||
"linkedin",
|
||||
],
|
||||
},
|
||||
volume: 100,
|
||||
mute: false,
|
||||
autostart: true,
|
||||
logo: {
|
||||
file: "{{ Setting::get('jwplayer_logo_file') }}",
|
||||
link: "{{ Setting::get('jwplayer_logo_link') }}",
|
||||
position: "{{ Setting::get('jwplayer_logo_position') }}",
|
||||
},
|
||||
advertising: {
|
||||
tag: "{{ Setting::get('jwplayer_advertising_file') }}",
|
||||
client: "vast",
|
||||
vpaidmode: "insecure",
|
||||
skipoffset: {{ (int) Setting::get('jwplayer_advertising_skipoffset') ?: 5 }}, // Bỏ qua quảng cáo trong vòng 5 giây
|
||||
skipmessage: "Bỏ qua sau xx giây",
|
||||
skiptext: "Bỏ qua"
|
||||
}
|
||||
};
|
||||
|
||||
if (type == 'm3u8') {
|
||||
const segments_in_queue = 50;
|
||||
|
||||
var engine_config = {
|
||||
debug: !1,
|
||||
segments: {
|
||||
forwardSegmentCount: 50,
|
||||
},
|
||||
loader: {
|
||||
cachedSegmentExpiration: 864e5,
|
||||
cachedSegmentsCount: 1e3,
|
||||
requiredSegmentsPriority: segments_in_queue,
|
||||
httpDownloadMaxPriority: 9,
|
||||
httpDownloadProbability: 0.06,
|
||||
httpDownloadProbabilityInterval: 1e3,
|
||||
httpDownloadProbabilitySkipIfNoPeers: !0,
|
||||
p2pDownloadMaxPriority: 50,
|
||||
httpFailedSegmentTimeout: 500,
|
||||
simultaneousP2PDownloads: 20,
|
||||
simultaneousHttpDownloads: 2,
|
||||
// httpDownloadInitialTimeout: 12e4,
|
||||
// httpDownloadInitialTimeoutPerSegment: 17e3,
|
||||
httpDownloadInitialTimeout: 0,
|
||||
httpDownloadInitialTimeoutPerSegment: 17e3,
|
||||
httpUseRanges: !0,
|
||||
maxBufferLength: 300,
|
||||
// useP2P: false,
|
||||
},
|
||||
};
|
||||
if (Hls.isSupported() && p2pml.hlsjs.Engine.isSupported()) {
|
||||
var engine = new p2pml.hlsjs.Engine(engine_config);
|
||||
player.setup(objSetup);
|
||||
jwplayer_hls_provider.attach();
|
||||
p2pml.hlsjs.initJwPlayer(player, {
|
||||
liveSyncDurationCount: segments_in_queue, // To have at least 7 segments in queue
|
||||
maxBufferLength: 300,
|
||||
loader: engine.createLoaderClass(),
|
||||
});
|
||||
} else {
|
||||
player.setup(objSetup);
|
||||
}
|
||||
} else {
|
||||
player.setup(objSetup);
|
||||
}
|
||||
|
||||
const resumeData = 'OPCMS-PlayerPosition-' + id;
|
||||
|
||||
player.on('ready', function() {
|
||||
if (typeof(Storage) !== 'undefined') {
|
||||
if (localStorage[resumeData] == '' || localStorage[resumeData] == 'undefined') {
|
||||
console.log("No cookie for position found");
|
||||
var currentPosition = 0;
|
||||
} else {
|
||||
if (localStorage[resumeData] == "null") {
|
||||
localStorage[resumeData] = 0;
|
||||
} else {
|
||||
var currentPosition = localStorage[resumeData];
|
||||
}
|
||||
console.log("Position cookie found: " + localStorage[resumeData]);
|
||||
}
|
||||
player.once('play', function() {
|
||||
console.log('Checking position cookie!');
|
||||
console.log(Math.abs(player.getDuration() - currentPosition));
|
||||
if (currentPosition > 180 && Math.abs(player.getDuration() - currentPosition) >
|
||||
5) {
|
||||
player.seek(currentPosition);
|
||||
}
|
||||
});
|
||||
window.onunload = function() {
|
||||
localStorage[resumeData] = player.getPosition();
|
||||
}
|
||||
} else {
|
||||
console.log('Your browser is too old!');
|
||||
}
|
||||
});
|
||||
|
||||
player.on('complete', function() {
|
||||
if (typeof(Storage) !== 'undefined') {
|
||||
localStorage.removeItem(resumeData);
|
||||
} else {
|
||||
console.log('Your browser is too old!');
|
||||
}
|
||||
})
|
||||
|
||||
function formatSeconds(seconds) {
|
||||
var date = new Date(1970, 0, 1);
|
||||
date.setSeconds(seconds);
|
||||
return date.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
const episode = '{{ $episode->id }}';
|
||||
let playing = document.querySelector(`[data-id="${episode}"]`);
|
||||
if (playing) {
|
||||
playing.click();
|
||||
return;
|
||||
}
|
||||
|
||||
const servers = document.getElementsByClassName('streaming-server');
|
||||
if (servers[0]) {
|
||||
servers[0].click();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<script src="/themes/xingkong/plugins/jquery-raty/jquery.raty.js"></script>
|
||||
<link href="/themes/xingkong/plugins/jquery-raty/jquery.raty.css" rel="stylesheet" type="text/css" />
|
||||
<script>
|
||||
var rated = false;
|
||||
$('#movies-rating-star').raty({
|
||||
score: {{ $currentMovie->getRatingStar() }},
|
||||
number: 10,
|
||||
numberMax: 10,
|
||||
hints: ['quá tệ', 'tệ', 'không hay', 'không hay lắm', 'bình thường', 'xem được', 'có vẻ hay', 'hay',
|
||||
'rất hay', 'siêu phẩm'
|
||||
],
|
||||
starOff: '/themes/xingkong/plugins/jquery-raty/images/star-off.png',
|
||||
starOn: '/themes/xingkong/plugins/jquery-raty/images/star-on.png',
|
||||
starHalf: '/themes/xingkong/plugins/jquery-raty/images/star-half.png',
|
||||
click: function(score, evt) {
|
||||
if (rated) return
|
||||
fetch("{{ route('movie.rating', ['movie' => $currentMovie->slug]) }}", {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
'X-CSRF-TOKEN': document.querySelector(
|
||||
'meta[name="csrf-token"]')
|
||||
.getAttribute(
|
||||
'content')
|
||||
},
|
||||
body: JSON.stringify({
|
||||
rating: score
|
||||
})
|
||||
});
|
||||
rated = true;
|
||||
$('#movies-rating-star').data('raty').readOnly(true);
|
||||
alert(`Bạn đã đánh giá ${score} sao cho phim này!`);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$("#report_error").click(() => {
|
||||
fetch("{{ route('episodes.report', ['movie' => $currentMovie->slug, 'episode' => $episode->slug, 'id' => $episode->id]) }}", {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').getAttribute(
|
||||
'content')
|
||||
},
|
||||
body: JSON.stringify({
|
||||
message: ''
|
||||
})
|
||||
});
|
||||
$("#report_error").remove();
|
||||
alert("Báo lỗi thành công!")
|
||||
})
|
||||
</script>
|
||||
|
||||
{!! setting('site_scripts_facebook_sdk') !!}
|
||||
@endpush
|
||||
59
resources/views/themexingkong/inc/catalog_filter.blade.php
Executable file
@@ -0,0 +1,59 @@
|
||||
<div>
|
||||
<h2 class="title">Bộ lọc phim</h2>
|
||||
<form action="/" method="GET" id="form-filter">
|
||||
<div class="row">
|
||||
<div class="form-group col-md-6 col-sm-3 col-xs-2">
|
||||
<select class="form-control" id="sort" name="filter[sort]" form="form-filter">
|
||||
<option value="">Sắp xếp</option>
|
||||
<option value="update" @if (isset(request('filter')['sort']) && request('filter')['sort'] == 'update') selected @endif>Thời gian cập nhật
|
||||
</option>
|
||||
<option value="create" @if (isset(request('filter')['sort']) && request('filter')['sort'] == 'create') selected @endif>Thời gian đăng</option>
|
||||
<option value="year" @if (isset(request('filter')['sort']) && request('filter')['sort'] == 'year') selected @endif>Năm sản xuất</option>
|
||||
<option value="view" @if (isset(request('filter')['sort']) && request('filter')['sort'] == 'view') selected @endif>Lượt xem</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-md-6 col-sm-3 col-xs-2">
|
||||
<select class="form-control" id="type" name="filter[type]" form="form-filter">
|
||||
<option value="">Mọi định dạng</option>
|
||||
<option value="series" @if (isset(request('filter')['type']) && request('filter')['type'] == 'series') selected @endif>Phim bộ</option>
|
||||
<option value="single" @if (isset(request('filter')['type']) && request('filter')['type'] == 'single') selected @endif>Phim lẻ</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-md-6 col-sm-3 col-xs-2">
|
||||
<select class="form-control" id="category" name="filter[category]" form="form-filter">
|
||||
<option value="">Tất cả thể loại</option>
|
||||
@foreach (\VsMov\Core\Models\Category::fromCache()->all() as $item)
|
||||
<option value="{{ $item->id }}" @if (
|
||||
(isset(request('filter')['category']) && request('filter')['category'] == $item->id) ||
|
||||
(isset($category) && $category->id == $item->id)) selected @endif>
|
||||
{{ $item->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-md-6 col-sm-3 col-xs-2">
|
||||
<select class="form-control" name="filter[region]" form="form-filter">
|
||||
<option value="">Tất cả quốc gia</option>
|
||||
@foreach (\VsMov\Core\Models\Region::fromCache()->all() as $item)
|
||||
<option value="{{ $item->id }}" @if (
|
||||
(isset(request('filter')['region']) && request('filter')['region'] == $item->id) ||
|
||||
(isset($region) && $region->id == $item->id)) selected @endif>
|
||||
{{ $item->name }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-md-6 col-sm-3 col-xs-2">
|
||||
<select class="form-control" name="filter[year]" form="form-filter">
|
||||
<option value="">Tất cả năm</option>
|
||||
@foreach ($years as $year)
|
||||
<option value="{{ $year }}" @if (isset(request('filter')['year']) && request('filter')['year'] == $year) selected @endif>
|
||||
{{ $year }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group col-md-6 col-sm-3 col-xs-2 text-center">
|
||||
<button type="submit" form="form-filter" class="btn btn-primary">Lọc</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
20
resources/views/themexingkong/inc/comment.blade.php
Executable file
@@ -0,0 +1,20 @@
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box clearfix">
|
||||
<div class="stui-pannel_bd clearfix">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head clearfix">
|
||||
<h3 class="title">
|
||||
<img src="{{ asset('themes/xingkong/img/icon_30.png') }}" /> Bình luận
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd">
|
||||
<div style="width: 100%; background-color: #fff">
|
||||
<div style="width: 100%; background-color: #fff" class="fb-comments"
|
||||
data-href="{{ $currentMovie->getUrl() }}" data-width="100%" data-colorscheme="light"
|
||||
data-numposts="5" data-order-by="reverse_time" data-lazy="true"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
59
resources/views/themexingkong/inc/header.blade.php
Executable file
@@ -0,0 +1,59 @@
|
||||
@php
|
||||
$logo = setting('site_logo', '');
|
||||
$brand = setting('site_brand', '');
|
||||
$title = isset($title) ? $title : setting('site_homepage_title', '');
|
||||
@endphp
|
||||
|
||||
<header class="stui-header__top clearfix">
|
||||
<div class="stui-header__bar clearfix">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="stui-header__logo">
|
||||
<a href="/">
|
||||
@if ($logo)
|
||||
{!! $logo !!}
|
||||
@else
|
||||
{!! $brand !!}
|
||||
@endif
|
||||
</a>
|
||||
</div>
|
||||
<div class="stui-header__search">
|
||||
<form action="/" method="GET">
|
||||
<input type="text" name="search" class="mac_wd form-control" value="{{ request('search') }}"
|
||||
placeholder="Tìm kiếm phim..." />
|
||||
<button class="submit" type="submit">
|
||||
<i class="icon iconfont icon-search"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-header__menu clearfix">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<ul class="">
|
||||
@foreach ($menu as $key => $item)
|
||||
@if (count($item['children']))
|
||||
<li class="dropdown">
|
||||
<a href="{{ $item['link'] }}">{{ $item['name'] }} <i
|
||||
class="icon iconfont icon-moreunfold"></i></a>
|
||||
<ul class="submenu">
|
||||
@foreach ($item['children'] as $children)
|
||||
<li class="">
|
||||
<a href="{{ $children['link'] }}">{{ $children['name'] }}</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<a href="{{ $item['link'] }}">{{ $item['name'] }}</a>
|
||||
</li>
|
||||
@endif
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
42
resources/views/themexingkong/inc/pagination.blade.php
Executable file
@@ -0,0 +1,42 @@
|
||||
@php
|
||||
$pageRange = 3;
|
||||
@endphp
|
||||
@if ($paginator->hasPages())
|
||||
<ul class="stui-page text-center clearfix">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
@else
|
||||
<li><a title="Trang trước" href="{{ $paginator->previousPageUrl() }}"> << </a></li>
|
||||
@endif
|
||||
|
||||
{{-- Pagination Elements --}}
|
||||
@foreach ($elements as $element)
|
||||
{{-- Array Of Links --}}
|
||||
@if (is_array($element))
|
||||
@foreach ($element as $page => $url)
|
||||
@if ($page == $paginator->currentPage())
|
||||
<li class="hidden-xs active"><a title="Trang {{ $page }}"
|
||||
href="#">{{ $page }}</a></li>
|
||||
<li class="active visible-xs">
|
||||
<span class="num">{{ $page }}/{{ $paginator->total() }}</span>
|
||||
</li>
|
||||
@else
|
||||
@if (
|
||||
($page > $paginator->currentPage() && $page < $paginator->currentPage() + $pageRange) ||
|
||||
($page < $paginator->currentPage() && $page > $paginator->currentPage() - $pageRange))
|
||||
<li class="hidden-xs">
|
||||
<a title="Trang {{ $page }}" href="{{ $url }}">{{ $page }}</a>
|
||||
</li>
|
||||
@endif
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li><a title="Trang tiếp" href="{{ $paginator->nextPageUrl() }}">>></a></li>
|
||||
@else
|
||||
@endif
|
||||
</ul>
|
||||
@endif
|
||||
32
resources/views/themexingkong/inc/related_movie.blade.php
Executable file
@@ -0,0 +1,32 @@
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head bottom-line active clearfix">
|
||||
<h3 class="title">
|
||||
<img src="{{ asset('themes/xingkong/img/icon_6.png') }}" /> Có thể bạn sẽ thích?
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd">
|
||||
<ul class="stui-vodlist__bd clearfix">
|
||||
@foreach ($movie_related as $movie)
|
||||
<li class="col-md-6 col-sm-4 col-xs-3 ">
|
||||
<div class="stui-vodlist__box">
|
||||
<a class="stui-vodlist__thumb lazyload" href="{{ $movie->getUrl() }}"
|
||||
title="{{ $movie->name }}" data-original="{{ $movie->getThumbUrl() }}">
|
||||
<span class="play hidden-xs"></span>
|
||||
<span class="pic-text text-right">{{ $movie->episode_current }}</span>
|
||||
</a>
|
||||
<div class="stui-vodlist__detail">
|
||||
<h4 class="title text-overflow">
|
||||
<a href="{{ $movie->getUrl() }}" title="{{ $movie->name }}">{{ $movie->name }}</a>
|
||||
</h4>
|
||||
<p class="text text-overflow text-muted hidden-xs">{{ $movie->origin_name }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
37
resources/views/themexingkong/inc/right_bar.blade.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<div class="col-lg-wide-2 col-xs-1 stui-pannel-side visible-lg">
|
||||
@foreach ($tops as $top)
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="col-pd clearfix">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head bottom-line active clearfix">
|
||||
<h3 class="title"> {{ $top['label'] }} </h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd">
|
||||
<ul class="stui-vodlist__media active col-pd clearfix">
|
||||
@foreach ($top['data'] as $movie)
|
||||
<li class="top-line-dot">
|
||||
<div class="thumb">
|
||||
<a class="stui-vodlist__thumb" href="{{ $movie->getUrl() }}"
|
||||
title="{{ $movie->name }}"
|
||||
style="width: 33.5px; background-image: url({{ $movie->getThumbUrl() }});"></a>
|
||||
</div>
|
||||
<div class="detail detail-side" style="padding-top: 5px;">
|
||||
<p class="margin-0 text_single-line">
|
||||
<a href="{{ $movie->getUrl() }}">{{ $movie->name }}</a>
|
||||
</p>
|
||||
<div class="score">
|
||||
<div class="star">
|
||||
<span class="star-cur" id="score"></span>
|
||||
</div>
|
||||
<span class="branch">{{ $movie->getRatingStar() }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
42
resources/views/themexingkong/inc/sections/default.blade.php
Normal file
@@ -0,0 +1,42 @@
|
||||
<div class="stui-pannel clearfix">
|
||||
<div class="stui-pannel-box padding-0">
|
||||
<div class="col-lg-wide-9.5 col-xs-1 padding-0">
|
||||
<div class="col-pd stui-pannel-bg">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head bottom-line active clearfix">
|
||||
<a class="more text-muted pull-right" href="{{ $item['link'] }}">Xem thêm <i
|
||||
class="icon iconfont icon-more"></i>
|
||||
</a>
|
||||
<h3 class="title">
|
||||
<img src="{{ asset('themes/xingkong/img/icon_1.png') }}" alt="{{ $item['label'] }}" />
|
||||
<a href="{{ $item['link'] }}">{{ $item['label'] }}</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd clearfix">
|
||||
<ul class="stui-vodlist clearfix">
|
||||
@foreach ($item['data'] as $movie)
|
||||
<li class="col-md-6 col-sm-4 col-xs-3 ">
|
||||
<div class="stui-vodlist__box">
|
||||
<a class="stui-vodlist__thumb lazyload" href="{{ $movie->getUrl() }}"
|
||||
title="{{ $movie->name }}" data-original="{{ $movie->getThumbUrl() }}">
|
||||
<span class="play hidden-xs"></span>
|
||||
<span class="pic-text text-right">{{ $movie->episode_current }}</span>
|
||||
</a>
|
||||
<div class="stui-vodlist__detail">
|
||||
<h4 class="title text-overflow">
|
||||
<a href="{{ $movie->getUrl() }}"
|
||||
title="{{ $movie->name }}">{{ $movie->name }}</a>
|
||||
</h4>
|
||||
<p class="text text-overflow text-muted hidden-xs">{{ $movie->origin_name }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,75 @@
|
||||
<div class="stui-pannel clearfix">
|
||||
<div class="stui-pannel-box padding-0">
|
||||
<div class="col-lg-wide-8 col-xs-1 padding-0">
|
||||
<div class="col-pd stui-pannel-bg">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head bottom-line active clearfix">
|
||||
<a class="more text-muted pull-right" href="{{ $item['link'] }}">Xem thêm <i
|
||||
class="icon iconfont icon-more"></i>
|
||||
</a>
|
||||
<h3 class="title">
|
||||
<img src="{{ asset('themes/xingkong/img/icon_1.png') }}" alt="{{ $item['label'] }}" />
|
||||
<a href="{{ $item['link'] }}">{{ $item['label'] }}</a>
|
||||
</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd clearfix">
|
||||
<ul class="stui-vodlist clearfix">
|
||||
@foreach ($item['data'] as $movie)
|
||||
<li class="col-md-5 col-sm-4 col-xs-3 ">
|
||||
<div class="stui-vodlist__box">
|
||||
<a class="stui-vodlist__thumb lazyload" href="{{ $movie->getUrl() }}"
|
||||
title="{{ $movie->name }}" data-original="{{ $movie->getThumbUrl() }}">
|
||||
<span class="play hidden-xs"></span>
|
||||
<span class="pic-text text-right">{{ $movie->episode_current }}</span>
|
||||
</a>
|
||||
<div class="stui-vodlist__detail">
|
||||
<h4 class="title text-overflow">
|
||||
<a href="{{ $movie->getUrl() }}"
|
||||
title="{{ $movie->name }}">{{ $movie->name }}</a>
|
||||
</h4>
|
||||
<p class="text text-overflow text-muted hidden-xs">{{ $movie->origin_name }}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-wide-2 stui-pannel-side hidden-md hidden-sm hidden-xs">
|
||||
<div class="col-pd stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head bottom-line active clearfix">
|
||||
<h3 class="title"> Top tuần </h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd">
|
||||
<ul class="stui-vodlist__media active col-pd clearfix">
|
||||
@foreach ($item['top'] as $movie)
|
||||
<li class="top-line-dot">
|
||||
<div class="thumb">
|
||||
<a class="stui-vodlist__thumb" href="{{ $movie->getUrl() }}"
|
||||
title="{{ $movie->name }}"
|
||||
style="width: 33.5px; background-image: url({{ $movie->getThumbUrl() }});"></a>
|
||||
</div>
|
||||
<div class="detail detail-side" style="padding-top: 5px;">
|
||||
<p class="margin-0 text_single-line">
|
||||
<a href="{{ $movie->getUrl() }}">{{ $movie->name }}</a>
|
||||
</p>
|
||||
<div class="score">
|
||||
<div class="star">
|
||||
<span class="star-cur" id="score"></span>
|
||||
</div>
|
||||
<span class="branch">{{ $movie->getRatingStar() }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
16
resources/views/themexingkong/inc/slider_recommended.blade.php
Executable file
@@ -0,0 +1,16 @@
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box clearfix">
|
||||
<div class="stui-pannel-bd">
|
||||
<div class="carousel carousel_default flickity-page">
|
||||
@foreach ($recommendations as $movie)
|
||||
<div class="col-xs-1">
|
||||
<a href="{{ $movie->getUrl() }}" class="stui-vodlist__thumb banner" title="{{ $movie->name }}"
|
||||
style="background: url({{ $movie->getPosterUrl() }}) no-repeat; background-position:50% 50%; background-size: cover;">
|
||||
<span class="pic-text text-center">{{ $movie->name }}</span>
|
||||
</a>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
85
resources/views/themexingkong/index.blade.php
Executable file
@@ -0,0 +1,85 @@
|
||||
@extends('themes::themexingkong.layout')
|
||||
|
||||
|
||||
@php
|
||||
use VsMov\Core\Models\Movie;
|
||||
$recommendations = Cache::remember('site.movies.recommendations', setting('site_cache_ttl', 5 * 60), function () {
|
||||
return Movie::where('is_recommended', true)->limit(get_theme_option('recommendations_limit', 10))->orderBy('updated_at', 'desc')->get();
|
||||
});
|
||||
$data = Cache::remember('site.movies.latest', setting('site_cache_ttl', 5 * 60), function () {
|
||||
$lists = preg_split('/[\n\r]+/', get_theme_option('latest'));
|
||||
$data = [];
|
||||
foreach ($lists as $list) {
|
||||
if (trim($list)) {
|
||||
$list = explode('|', $list);
|
||||
[$label, $relation, $field, $val, $sortKey, $alg, $limit, $link, $template] = array_merge($list, ['Phim mới cập nhật', '', 'type', 'series', 'created_at', 'desc', 8, '/', 'default']);
|
||||
try {
|
||||
$top = null;
|
||||
if ($template === 'with_top') {
|
||||
$top = Movie::when($relation, function ($query) use ($relation, $field, $val) {
|
||||
$query->whereHas($relation, function ($rel) use ($field, $val) {
|
||||
$rel->where($field, $val);
|
||||
});
|
||||
})
|
||||
->when(!$relation, function ($query) use ($field, $val) {
|
||||
$query->where($field, $val);
|
||||
})
|
||||
->orderBy('view_week', 'desc')
|
||||
->limit(9)
|
||||
->get();
|
||||
}
|
||||
$data[] = [
|
||||
'label' => $label,
|
||||
'data' => Movie::when($relation, function ($query) use ($relation, $field, $val) {
|
||||
$query->whereHas($relation, function ($rel) use ($field, $val) {
|
||||
$rel->where($field, $val);
|
||||
});
|
||||
})
|
||||
->when(!$relation, function ($query) use ($field, $val) {
|
||||
$query->where($field, $val);
|
||||
})
|
||||
->orderBy($sortKey, $alg)
|
||||
->limit($limit)
|
||||
->get(),
|
||||
'top' => $top,
|
||||
'link' => $link ?: '#',
|
||||
'template' => $template,
|
||||
];
|
||||
} catch (\Exception $e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
return $data;
|
||||
});
|
||||
@endphp
|
||||
|
||||
@push('header')
|
||||
<style type="text/css">
|
||||
.stui-vodlist__thumb.banner {
|
||||
padding-top: 30%;
|
||||
}
|
||||
|
||||
@media (max-width:767px) {
|
||||
.stui-vodlist__thumb.banner {
|
||||
padding-top: 45%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
@include('themes::themexingkong.inc.slider_recommended')
|
||||
|
||||
@foreach ($data as $item)
|
||||
@include('themes::themexingkong.inc.sections.' . $item['template'])
|
||||
@endforeach
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/javascript">
|
||||
$(".score").each(function() {
|
||||
var star = $(this).find(".branch").text().replace(".", "0.");
|
||||
$(this).find("#score").css("width", "" + star + "%");
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
54
resources/views/themexingkong/layout.blade.php
Executable file
@@ -0,0 +1,54 @@
|
||||
@extends('themes::layout')
|
||||
|
||||
@php
|
||||
@endphp
|
||||
|
||||
@push('header')
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"
|
||||
rel="stylesheet">
|
||||
|
||||
<link rel="stylesheet" href="{{ asset('themes/xingkong/css/iconfont.css') }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ asset('themes/xingkong/css/stui_block.css') }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ asset('themes/xingkong/css/stui_block_color.css') }}" type="text/css" />
|
||||
<link rel="stylesheet" href="{{ asset('themes/xingkong/css/stui_default.css') }}" type="text/css" />
|
||||
|
||||
<script type="text/javascript" src="{{ asset('themes/xingkong/js/jquery.min.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ asset('themes/xingkong/js/stui_default.js') }}"></script>
|
||||
<script type="text/javascript" src="{{ asset('themes/xingkong/js/stui_block.js') }}"></script>
|
||||
@endpush
|
||||
|
||||
@section('body')
|
||||
@include('themes::themexingkong.inc.header')
|
||||
@if (get_theme_option('ads_header'))
|
||||
<div class="container">
|
||||
<div id="top-banner">
|
||||
{!! get_theme_option('ads_header') !!}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
@yield('content')
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
@endpush
|
||||
|
||||
@section('footer')
|
||||
{!! get_theme_option('footer') !!}
|
||||
|
||||
@if (get_theme_option('ads_catfish'))
|
||||
<div class="container">
|
||||
<div id="catfish-banner">
|
||||
{!! get_theme_option('ads_catfish') !!}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
{!! setting('site_scripts_google_analytics') !!}
|
||||
@endsection
|
||||
221
resources/views/themexingkong/single.blade.php
Executable file
@@ -0,0 +1,221 @@
|
||||
@extends('themes::themexingkong.layout')
|
||||
|
||||
@php
|
||||
$watch_url = '';
|
||||
if (!$currentMovie->is_copyright && count($currentMovie->episodes) && $currentMovie->episodes[0]['link'] != '') {
|
||||
$watch_url = $currentMovie->episodes
|
||||
->sortBy([['server', 'asc']])
|
||||
->groupBy('server')
|
||||
->first()
|
||||
->sortByDesc('name', SORT_NATURAL)
|
||||
->groupBy('name')
|
||||
->last()
|
||||
->sortByDesc('type')
|
||||
->first()
|
||||
->getUrl();
|
||||
}
|
||||
@endphp
|
||||
|
||||
@push('header')
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="col-lg-wide-8 col-xs-1 padding-0">
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box clearfix">
|
||||
<div class="stui-pannel_bd clearfix">
|
||||
<div class="stui-content col-pd clearfix">
|
||||
<div class="stui-content__thumb">
|
||||
<a class="stui-vodlist__thumb picture v-thumb" href="{{ $watch_url }}"
|
||||
title="{{ $currentMovie->name }}">
|
||||
<img class="lazyload" src="{{ asset('themes/xingkong/img/load.gif') }}"
|
||||
data-original="{{ $currentMovie->getThumbUrl() }}" />
|
||||
<span class="play active hidden-xs"></span>
|
||||
<span class="pic-text text-right">{{ $currentMovie->episode_current }}</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="stui-content__detail">
|
||||
<h1 class="title">{{ $currentMovie->name }}</h1>
|
||||
<p class="data">
|
||||
<h2>{{ $currentMovie->origin_name }}</h2>
|
||||
</p>
|
||||
<p class="movie-rating">
|
||||
<span id="movies-rating-star"></span>
|
||||
</p>
|
||||
<p class="data">
|
||||
<span class="text-muted hidden-xs">Thể Loại: </span>
|
||||
{!! $currentMovie->categories->map(function ($category) {
|
||||
return '<a href="' . $category->getUrl() . '">' . $category->name . '</a>';
|
||||
})->implode(', ') !!}
|
||||
<span class="split-line"></span>
|
||||
<span class="text-muted hidden-xs">Quốc gia: </span>
|
||||
|
||||
{!! $currentMovie->regions->map(function ($region) {
|
||||
return '<a href="' . $region->getUrl() . '">' . $region->name . '</a>';
|
||||
})->implode(', ') !!}
|
||||
|
||||
<span class="split-line"></span>
|
||||
<span class="text-muted hidden-xs">Năm: </span>{{ $currentMovie->publish_year }}
|
||||
</p>
|
||||
<p class="data">
|
||||
|
||||
</p>
|
||||
<p class="data">
|
||||
<span class="text-muted">Ngôn ngữ: </span>{{ $currentMovie->language }} <span
|
||||
class="split-line"></span>
|
||||
<span class="text-muted hidden-xs">Chất lượng: </span>{{ $currentMovie->quality }}
|
||||
</p>
|
||||
<p class="data">
|
||||
<span class="text-muted">Diễn viên: </span>
|
||||
{!! $currentMovie->actors->map(function ($actor) {
|
||||
return '<a href="' . $actor->getUrl() . '">' . $actor->name . '</a>';
|
||||
})->implode(', ') !!}
|
||||
</p>
|
||||
<p class="data">
|
||||
<span class="text-muted">Đạo diễn: </span>
|
||||
{!! $currentMovie->directors->map(function ($director) {
|
||||
return '<a href="' . $director->getUrl() . '">' . $director->name . '</a>';
|
||||
})->implode(', ') !!}
|
||||
</p>
|
||||
<p class="desc detail hidden-xs">
|
||||
<span class="left text-muted">Nội dung:</span>
|
||||
<span class="detail-sketch">
|
||||
{!! Str::limit(strip_tags($currentMovie->content), 60, '...') !!}
|
||||
</span>
|
||||
<span class="detail-content" style="display: none;">
|
||||
{!! strip_tags($currentMovie->content) !!}
|
||||
</span>
|
||||
<a class="detail-more" href="javascript:;">Xem thêm <i
|
||||
class="icon iconfont icon-moreunfold"></i>
|
||||
</a>
|
||||
</p>
|
||||
<div class="play-btn clearfix">
|
||||
<div class="share bdsharebuttonbox hidden-sm hidden-xs pull-right"></div>
|
||||
@if ($watch_url)
|
||||
<a class="btn btn-primary" href="{{ $watch_url }}">Xem Phim</a>
|
||||
@endif
|
||||
@if (strpos($currentMovie->trailer_url, 'youtube'))
|
||||
<a href="javascript:void(0);" class="btn btn-default" id="show-trailer">Trailer</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@if ($watch_url)
|
||||
<div class="stui-pannel stui-pannel-bg clearfix">
|
||||
<div class="stui-pannel-box b playlist mb">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head bottom-line active clearfix">
|
||||
<span class="more text-muted pull-right"></span>
|
||||
<h3 class="title"> Xem phim {{ $currentMovie->name }} </h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd col-pd clearfix">
|
||||
<ul class="stui-content__playlist clearfix">
|
||||
@php
|
||||
$currentMovie->episodes
|
||||
->sortBy([['name', 'desc'], ['type', 'desc']])
|
||||
->sortByDesc('name', SORT_NATURAL)
|
||||
->unique('name')
|
||||
->take(8)
|
||||
->map(function ($episode) {
|
||||
echo '<li><a href="' . $episode->getUrl() . '">Tập ' . $episode->name . '</a></li>';
|
||||
});
|
||||
@endphp
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@include('themes::themexingkong.inc.related_movie')
|
||||
@include('themes::themexingkong.inc.comment')
|
||||
</div>
|
||||
|
||||
@include('themes::themexingkong.inc.right_bar')
|
||||
|
||||
@if (strpos($currentMovie->trailer_url, 'youtube'))
|
||||
@php
|
||||
try {
|
||||
parse_str(parse_url($currentMovie->trailer_url, PHP_URL_QUERY), $parse_url);
|
||||
$trailer_id = $parse_url['v'];
|
||||
} catch (\Throwable $th) {
|
||||
$trailer_id = '';
|
||||
}
|
||||
@endphp
|
||||
<div class="stui-modal fade" id="modal-trailer" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="stui-modal__dialog">
|
||||
<div class="stui-modal__content">
|
||||
<div class="stui-pannel clearfix">
|
||||
<div class="stui-pannel-box clearfix">
|
||||
<div class="stui-pannel_hd">
|
||||
<div class="stui-pannel__head active bottom-line clearfix">
|
||||
<a href="javascript:;" class="more close pull-right" data-dismiss="modal"
|
||||
aria-hidden="true">
|
||||
<i class="icon iconfont icon-close"></i>
|
||||
</a>
|
||||
<h3 class="title">Trailer phim {{ $currentMovie->name }}</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="stui-pannel_bd clearfix">
|
||||
<iframe src="https://www.youtube.com/embed/{{ $trailer_id }}"
|
||||
style="width: 100%;height: 100%;" frameborder="0"
|
||||
allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowfullscreen></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
$(function() {
|
||||
$("#show-trailer").click(function() {
|
||||
$("#modal-trailer").modal('show');
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<script src="/themes/xingkong/plugins/jquery-raty/jquery.raty.js"></script>
|
||||
<link href="/themes/xingkong/plugins/jquery-raty/jquery.raty.css" rel="stylesheet" type="text/css" />
|
||||
<script>
|
||||
var rated = false;
|
||||
$('#movies-rating-star').raty({
|
||||
score: {{ $currentMovie->getRatingStar() }},
|
||||
number: 10,
|
||||
numberMax: 10,
|
||||
hints: ['quá tệ', 'tệ', 'không hay', 'không hay lắm', 'bình thường', 'xem được', 'có vẻ hay', 'hay',
|
||||
'rất hay', 'siêu phẩm'
|
||||
],
|
||||
starOff: '/themes/xingkong/plugins/jquery-raty/images/star-off.png',
|
||||
starOn: '/themes/xingkong/plugins/jquery-raty/images/star-on.png',
|
||||
starHalf: '/themes/xingkong/plugins/jquery-raty/images/star-half.png',
|
||||
click: function(score, evt) {
|
||||
if (rated) return
|
||||
fetch("{{ route('movie.rating', ['movie' => $currentMovie->slug]) }}", {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
"Content-Type": "application/json",
|
||||
'X-CSRF-TOKEN': document.querySelector(
|
||||
'meta[name="csrf-token"]')
|
||||
.getAttribute(
|
||||
'content')
|
||||
},
|
||||
body: JSON.stringify({
|
||||
rating: score
|
||||
})
|
||||
});
|
||||
rated = true;
|
||||
$('#movies-rating-star').data('raty').readOnly(true);
|
||||
alert(`Bạn đã đánh giá ${score} sao cho phim này!`);
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{!! setting('site_scripts_facebook_sdk') !!}
|
||||
@endpush
|
||||