begin of thinksaas 3.68

Signed-off-by: kevin <kevin@lmve.net>
This commit is contained in:
2023-06-22 13:33:25 +08:00
commit 963ec1b2ea
2746 changed files with 331806 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
<?php
+9
View File
@@ -0,0 +1,9 @@
<?php
defined('IN_TS') or die('Access Denied.');
//管理入口
if(is_file('app/'.$app.'/action/admin/'.$mg.'.php')){
include_once 'app/'.$app.'/action/admin/'.$mg.'.php';
}else{
tsNotice('sorry:no index!');
}
+27
View File
@@ -0,0 +1,27 @@
<?php
defined('IN_TS') or die('Access Denied.');
switch($ts){
//基本配置
case "":
$strOption = getAppOptions('friendlinks');
include template("admin/options");
break;
case "do":
$arrOption = $_POST['option'];
#更新app配置选项
upAppOptions('friendlinks',$arrOption);
#更新app导航和我的导航
upAppNav('friendlinks',$arrOption['appname']);
qiMsg('修改成功!');
break;
}
+20
View File
@@ -0,0 +1,20 @@
<?php
defined('IN_TS') or die('Access Denied.');
switch($ts){
case "list":
include template("admin/topic_list");
break;
case "delete":
qiMsg('删除成功');
break;
//帖子审核
case "isaudit":
qiMsg('操作成功!');
break;
}
+10
View File
@@ -0,0 +1,10 @@
<?php
//创建小组
defined('IN_TS') or die('Access Denied.');
switch($ts){
case "":
include template("create");
break;
case "do": $js = intval($_GET['js']); $authcode = strtolower($_POST['authcode']); if ($authcode != $_SESSION['verify']) { getJson('验证码输入有误,请重新输入!', $js); } $path=h($_POST['path']); $email=trim($_POST['email']); $name=trim($_POST['name']); $face=h($_POST['face']); $about=trim($_POST['about']); if($email=='' || $path=='' || $name=='') { getJson('带*是必要的',$js); } if(valid_email($email) == false) { getJson('Email邮箱输入有误',$js); } echo $email.'<br>'.$path.'<br>'.$name.'<br>'.$face.'<br>'.$about.'<br>'.getIp(); /* $ispath = $new['friendlinks']->findCount('friendlinks',array( 'path'=>$path, )); if($ispath > 0){ getJson('你以提交过了',$js); }else */ $id = $new ['friendlinks']->create ( 'friendlinks',array( 'name'=>$name, 'email'=>$email, 'path'=>$path, 'face'=>$face, 'about'=>$about, 'ip'=>getIp(), 'addtime'=>time(), )); getJson('提交成功!!感谢!',$js); break;
}
+3
View File
@@ -0,0 +1,3 @@
<?php
defined ( 'IN_TS' ) or die ( 'Access Denied.' );
include template ( "index" );
+12
View File
@@ -0,0 +1,12 @@
<?php
defined('IN_TS') or die('Access Denied.');
class friendlinks extends tsApp{
function getfriends($num){
$friends = $this->findAll('friendlinks',array('isenable'=>0,),'addtime asc','id,name,face,path,addtime',$num);
return $friends; }
}
+19
View File
@@ -0,0 +1,19 @@
<?php
defined('IN_TS') or die('Access Denied.');
$skin = 'default';
$TS_APP['appname'] = '友情链接';
/*
* APP独立数据库配置
*/
+8
View File
@@ -0,0 +1,8 @@
<h6>小组管理</h6>
<div class="tabnav">
<ul>
<li {if $mg=='options'}class="select"{/if}><a href="{SITE_URL}index.php?app=friendlinks&ac=admin&mg=options">配置</a></li>
<li {if $mg=='topic' && $ts=='list'}class="select"{/if}><a href="{SITE_URL}index.php?app=friendlinks&ac=admin&mg=topic&ts=list">管理</a></li>
</ul>
</div>
+23
View File
@@ -0,0 +1,23 @@
{php include pubTemplate("header_admin")}
<div class="midder">
{php include template("admin/menu");}
<form method="POST" action="{SITE_URL}index.php?app=friendlinks&ac=admin&mg=options&ts=do">
<table class="table table-hover">
<tr><td width="220">APP名称:</td><td><input style="width:300px;" name="option[appname]" value="{$strOption[appname]}" /></td></tr>
<tr><td>APP介绍:</td><td><textarea style="width:300px;" name="option[appdesc]">{$strOption[appdesc]}</textarea></td></tr>
<tr><td>APP关键词:</td><td><input style="width:300px;" name="option[appkey]" value="{$strOption[appkey]}" /></td></tr>
<input type="hidden" name="token" value="{$_SESSION['token']}" />
<input class="btn btn-primary" type="submit" value="提 交" /></td></tr>
</table>
</form>
</div>
{php include pubTemplate("footer_admin")}
@@ -0,0 +1,51 @@
{php include pubTemplate("header_admin")}
<!--main-->
<div class="midder">
{php include template("admin/menu");}
<div class="page">{$pageUrl}</div>
<table class="table table-hover">
<thead class="thead-light fs14">
<tr><th>ID</th><th>UserID</th><th>标题</th><th>时间</th><th>操作</th></tr>
</thead>
<tbody class="fs12">
{loop $arrTopic $key $item}
<tr><td>{$item['topicid']}</td><td>{$item['userid']}</td><td><a target="_blank" href="{tsUrl('group','topic',array('id'=>$item['topicid']))}">{tsTitle($item['title'])}</a></td><td>{php echo date('Y-m-d H:i:s',$item['addtime'])}</td><td>
<a href="{SITE_URL}index.php?app=friendlinks&ac=admin&mg=topic&ts=isaudit&topicid={$item['topicid']}">
{if $item['isaudit']==0}
已审核
{else}
<font color="red">未审核</a>
{/if}
</a>
|
<a onclick="return confirm('确定删除?')" href="{SITE_URL}index.php?app=friendlinks&ac=admin&mg=topic&ts=delete&topicid={$item['topicid']}&groupid={$item['groupid']}">删除</a>
</td></tr>
{/loop}
</tbody>
</table>
</div>
{php include pubTemplate("footer_admin")}
+48
View File
@@ -0,0 +1,48 @@
{php include pubTemplate("header")}
<div class="container">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{SITE_URL}">首页</a></li>
<li class="breadcrumb-item"><a href="{tsUrl('group')}">友链</a></li>
<li class="breadcrumb-item active" aria-current="page">友链申请</li>
</ol>
</nav>
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-8">
<form role="form" method="POST" action="{SITE_URL}index.php?app=friendlinks&ac=create&ts=do" enctype="multipart/form-data">
<div class="form-group">
<label>*站点链接(带http://或https://</label>
<input name="path" type="text" class="form-control" placeholder="http:// or https://">
</div> <div class="form-group"> <label>*站点名字</label> <input name="name" type="text" class="form-control"> </div>
<div class="form-group"> <label>网站图片or LOGO(注意防盗链)</label> <input name="face" type="text" class="form-control" placeholder="http:// or https://"> </div>
<div class="form-group">
<label>简单介绍</label>
<textarea style="min-height:100px;" class="form-control" name="about"></textarea>
</div> <div class="form-group"> <label>*Email</label> <input name="email" type="email" class="form-control"> </div> <div class="form-group"> <label>验证码:</label> <div class="d-flex flex-row align-items-start"> <div class="d-flex flex-column"> <input name="authcode" type="text" class="form-control" placeholder="" check-type="required"> </div> <div class="d-flex ml-1"> <img id="imagecode" align="absmiddle" src="{SITE_URL}index.php?app=pubs&ac=code" onclick="javascript:newgdcode(this,this.src);" title="点击刷新验证码" alt="点击刷新验证码" style="cursor:pointer;" /> <a href="javascript:void('0');" onclick="changeImageCode();"></a> </div> </div> </div>
<input type="hidden" name="token" value="{$_SESSION['token']}" />
<button type="submit" class="btn btn-sm btn-info">提交</button>
</form>
</div>
<div class="col-md-2"></div>
</div>
</div>
</div>
</div>
{php include pubTemplate("footer")}
+17
View File
@@ -0,0 +1,17 @@
{php include pubTemplate("header")}
<div class="container">
<nav aria-label="breadcrumb" class="position-relative">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{SITE_URL}">首页</a></li>
<li class="breadcrumb-item active" aria-current="page">友链</li>
</ol>
<a class="btn btn-sm btn-info position-absolute" style="z-index: 100;top:6px;right:6px;" href="{tsUrl('friendlinks','create')}">友链申请</a>
</nav>
</div>
{php include pubTemplate("footer")}
View File
+166
View File
@@ -0,0 +1,166 @@
/*显示隐藏回复*/
function commentOpen(id,gid)
{
$('#rcomment_'+id).toggle('fast');
}
//收藏帖子(1.8改为喜欢)
function loveTopic(tid){
var url = siteUrl+'index.php?app=group&ac=do&ts=topic_collect';
$.post(url,{topicid:tid},function(rs){
if(rs == 0){
tsNotice('请登录后再喜欢');
}else if(rs == 1){
tsNotice('自己不能喜欢自己的帖子哦')
}else if(rs == 2){
tsNotice('你已经喜欢过本帖啦,请不要再次喜欢');
}else{
window.location.reload();
}
});
}
//淘帖子,加专辑
function taoalbum(topicid){
$.post(siteUrl+'index.php?app=group&ac=album&ts=topic',{'topicid':topicid},function(rs){
if(rs==0){
tsNotice('请登陆后再进行淘帖');
}else if(rs == 1){
tsNotice('请创建专辑后再进行淘贴');
}else {
tsNotice(rs);
}
})
}
//Ctrl+Enter 回复评论
function keyRecomment(rid,tid,event)
{
if(event.ctrlKey == true)
{
if(event.keyCode == 13)
recomment(rid,tid);
return false;
}
}
//回复评论
function recomment(rid,tid,token){
c = $('#recontent_'+rid).val();
if(c==''){alert('回复内容不能为空');return false;}
var url = siteUrl+'index.php?app=group&ac=comment&ts=recomment';
$('#recomm_btn_'+rid).hide();
$.post(url,{referid:rid,topicid:tid,content:c,'token':token} ,function(rs){
if(rs == 0)
{
//alert('回复成功');
window.location.reload();
}else{
$('#recomm_btn_'+rid).show();
}
})
}
//向下加载更多帖子
function loadTopic(userid,page){
var num = parseInt(page)+1;
$("#viewmore").html('<img src="'+siteUrl+'public/images/loading.gif" />');
$.get(siteUrl+'index.php?app=group&ac=ajax&ts=topic',{'userid':userid,'page':page},function(rs){
if(rs==''){
$("#viewmore").html('没有可以加载的内容啦...');
}else{
$("#before").before(rs);
$("#viewmore").html('<a class="btn" href="javascript:void(0);" onclick="loadTopic('+userid+','+num+')">查看更多内容......</a>');
}
})
}
//帖子审核
function topicAudit(topicid,token){
$.post(siteUrl+'index.php?app=group&ac=ajax&ts=topicaudit',{'topicid':topicid,'token':token},function(rs){
if(rs==0){
window.location.reload();
return false;
}else if(rs==1){
window.location.reload();
return false;
}else if(rs==2){
tsNotice('非法操作!');
}
})
}
//踢出小组
function kickedGroup(groupid,userid){
$.post(siteUrl+'index.php?app=group&ac=kicked',{'groupid':groupid,'userid':userid},function(rs){
if(rs=='0'){
tsNotice('非法操作!')
}else if(rs=='1'){
tsNotice('非法操作!')
}else{
window.location.reload();
}
})
}
//加入小组
function joinGroup(groupid){
tsPost('index.php?app=group&ac=ajax&ts=joingroup',{'groupid':groupid});
}
function exitGroup(groupid){
tsPost('index.php?app=group&ac=ajax&ts=exitgroup',{'groupid':groupid});
}
//续期
function openXuqi(userid) {
$("#xuqi_userid").val(userid);
var html = $("#xuqi_html").html();
tsNotice(html);
}
//标注
function toBook(topicid){
var book = $('#book-text').val();
if(topicid && book){
$.post(siteUrl+'index.php?app=group&ac=ajax&ts=book',{'topicid':topicid,'book':book},function (rs) {
if(rs==1){
window.location.reload()
}else{
$('#book-alert').html('标注不能为空');
}
})
}else{
$('#book-alert').html('标注不能为空');
}
}
File diff suppressed because one or more lines are too long
Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

+1
View File
@@ -0,0 +1 @@
@font-face{font-family:"socialshare";src:url("../fonts/iconfont.eot");src:url("../fonts/iconfont.eot?#iefix") format("embedded-opentype"),url("../fonts/iconfont.woff") format("woff"),url("../fonts/iconfont.ttf") format("truetype"),url("../fonts/iconfont.svg#iconfont") format("svg")}.social-share{font-family:"socialshare" !important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:0.2px;-moz-osx-font-smoothing:grayscale}.social-share .icon-tencent:before{content:"\f07a"}.social-share .icon-qq:before{content:"\f11a"}.social-share .icon-weibo:before{content:"\f12a"}.social-share .icon-wechat:before{content:"\f09a"}.social-share .icon-douban:before{content:"\f10a"}.social-share .icon-heart:before{content:"\f20a"}.social-share .icon-like:before{content:"\f00a"}.social-share .icon-qzone:before{content:"\f08a"}.social-share .icon-linkedin:before{content:"\f01a"}.social-share .icon-diandian:before{content:"\f05a"}.social-share .icon-facebook:before{content:"\f03a"}.social-share .icon-google:before{content:"\f04a"}.social-share .icon-twitter:before{content:"\f06a"}.social-share a{position:relative;text-decoration:none;margin:4px;display:inline-block;outline:none}.social-share .social-share-icon{position:relative;display:inline-block;width:32px;height:32px;font-size:20px;border-radius:50%;line-height:32px;border:1px solid #666;color:#666;text-align:center;vertical-align:middle;transition:background 0.6s ease-out 0s}.social-share .social-share-icon:hover{background:#666;color:#fff}.social-share .icon-weibo{color:#ff763b;border-color:#ff763b}.social-share .icon-weibo:hover{background:#ff763b}.social-share .icon-tencent{color:#56b6e7;border-color:#56b6e7}.social-share .icon-tencent:hover{background:#56b6e7}.social-share .icon-qq{color:#56b6e7;border-color:#56b6e7}.social-share .icon-qq:hover{background:#56b6e7}.social-share .icon-qzone{color:#FDBE3D;border-color:#FDBE3D}.social-share .icon-qzone:hover{background:#FDBE3D}.social-share .icon-douban{color:#33b045;border-color:#33b045}.social-share .icon-douban:hover{background:#33b045}.social-share .icon-linkedin{color:#0077B5;border-color:#0077B5}.social-share .icon-linkedin:hover{background:#0077B5}.social-share .icon-facebook{color:#44619D;border-color:#44619D}.social-share .icon-facebook:hover{background:#44619D}.social-share .icon-google{color:#db4437;border-color:#db4437}.social-share .icon-google:hover{background:#db4437}.social-share .icon-twitter{color:#55acee;border-color:#55acee}.social-share .icon-twitter:hover{background:#55acee}.social-share .icon-diandian{color:#307DCA;border-color:#307DCA}.social-share .icon-diandian:hover{background:#307DCA}.social-share .icon-wechat{position:relative;color:#7bc549;border-color:#7bc549}.social-share .icon-wechat:hover{background:#7bc549}.social-share .icon-wechat .wechat-qrcode{opacity:0;filter:alpha(opacity=0);visibility:hidden;position:absolute;z-index:9;top:-205px;left:-84px;width:200px;height:192px;color:#666;font-size:12px;text-align:center;background-color:#fff;box-shadow:0 2px 10px #aaa;transition:all 200ms;-webkit-tansition:all 350ms;-moz-transition:all 350ms}.social-share .icon-wechat .wechat-qrcode h4{font-weight:normal;height:26px;line-height:26px;font-size:12px;background-color:#f3f3f3;margin:0;padding:0;color:#777}.social-share .icon-wechat .wechat-qrcode .qrcode{width:105px;margin:10px auto}.social-share .icon-wechat .wechat-qrcode .help p{font-weight:normal;line-height:16px;padding:0;margin:0}.social-share .icon-wechat .wechat-qrcode:after{content:'';position:absolute;left:50%;margin-left:-6px;bottom:-13px;width:0;height:0;border-width:8px 6px 6px 6px;border-style:solid;border-color:#fff transparent transparent transparent}.social-share .icon-wechat:hover .wechat-qrcode{opacity:1;filter:alpha(opacity=100);visibility:visible}
+298
View File
@@ -0,0 +1,298 @@
/*最新CSS*/
.group_show{overflow:hidden;padding: 50px 20px 20px 20px;border-bottom: solid 1px #dddddd;background-color:#bbb;background-image:url('group.jpg');background-repeat: no-repeat;background-size: 100% 100%;}
.group_show .face{float:left;}
.group_show .face img{}
.group_show .title{float:left;margin-left:20px;}
.group_show .title p{color:#999;margin: 0;margin-top: 6px;}
.group_show .join{float:right;margin-left:20px;color:#fff;}
/*最新CSS*/
.mbtl {
float: left;
margin: 8px 7px 0 0;
padding: 0;
width: 55px;
}
.mbtr {
border-bottom: 1px solid #EEEEEE;
margin: 0px 0 20px 0;
min-height: 55px;
overflow: hidden;
padding: 10px;;
background:#f8f8f8;
}
.mbtr .author{}
.mbtr .author a{color:#8f8f8f;}
.mbtr .title{margin-top:10px;}
.mbtr .title a{color: #444444;font-size:22px;}
.mbtr .content{line-height:30px;font-size:14px;}
/*右侧会员列表*/
.pl {
color: #666666;
font: 12px/150% Arial;
padding:10px 0;
}
.pl2 {
color: #666666;
font: 14px/150% Arial;
}
.pil {
height: 48px;
width: 48px;
}
.plr {
color: #666666;
float: right;
font: 12px/150% Arial;
}
.mr5 {
margin-right: 5px;
}
/*内容页*/
.topic-content{width: 100%;overflow:hidden;}
.topic-content .user-face{float: left;height: 48px;overflow: hidden;width: 48px;}
.topic-content .topic-doc {
margin-bottom: 30px;
overflow: hidden;
margin-left:60px;
}
.topic-content .topic-doc .author {
height: auto;
margin: 0;
margin-bottom: 1px;
color: #666666;
background:#f4f4ec;
padding:5px;
font-size:12px;
}
.topic-content img{max-width:100%;}
.topic-content .topic-view{font-size:16px;line-height:30px;overflow: hidden;word-wrap: break-word;word-break: normal;}
.topic-content .topic-view a{color:#49a5de}
.topic-content .topic-view p{font-size:16px;}
.topic-content .topic-view table{border:#CCCCCC 1px solid;}
.topic-content .topic-view table td{ border:1px #CCCCCC solid; border-right:none; border-top:none;}
.pl20 {
padding-left: 20px;
}
.topic-content .topic-opt {
padding: 15px 0 0;
}
.rec-sec {
color: #999999;
text-align: right;
}
.rec-num {
margin: 0 4px;
}
.clearfix {
display: block;
}
/*ob*/
.ob {
float: left;
margin: 0 0 10px;
text-align: center;
width: 70px;
}
.ob dt {
height: 50px;
margin: 0;
overflow: hidden;
text-align: center;
}
.ob dd {
height: 55px;
margin: 0;
overflow: hidden;
text-align: center;
}
.ob span {
white-space: nowrap;
}
/*帖子类型列表*/
.topictype{}
.topictype td{border-bottom:dashed 1px #DDDDDD;padding:5px;}
/*帖子列表*/
.topic_list{overflow:hidden;}
.topic_list ul, .topic_list ul li{list-style: none;margin:0;padding:0;}
.topic_list ul{overflow:hidden;}
.topic_list ul li{overflow:hidden;padding:15px 0;display: block;border-bottom: 1px dashed #ccc;}
.topic_list .userimg{float:left;width:38px;overflow:hidden;}
.topic_list .topic_title{margin-left:40px;overflow:hidden;}
.topic_list .topic_title .title a{color:#343434;font-size:14px;}
.topic_list .topic_info{overflow: hidden;font-size:12px;color:#999999;}
.rank {
background: none repeat scroll 0 0 #BBBBBB;
height: 15px;
line-height: 15px;
margin: 0 0 0 5px;
padding: 0 3px;
border-radius:5px 5px 5px 5px;
}
/*小组列表*/
.sub-item{
border-bottom: 1px dashed #AAAAAA;
height: 72px;
margin: 0 2px 15px 0;
overflow: hidden;
width: 100%;
padding-bottom: 15px;
}
.sub-item .pic {
float: left;
width: 48px;
}
.sub-item .info {
vertical-align: top;
word-wrap: break-word;
margin-left:60px;
}
.sub-item .info .content{ line-height:20px;font-size: 12px;color:#999999}
.sub-item .pic img {
height: 48px;
margin-bottom: -3px;
width: 48px;
}
.sub-item p {
margin: 0;
}
/*热门帖子列表*/
.group_index_right_hottopic{}
.group_index_right_hottopic ul {
word-wrap: break-word;
list-style: none;
margin: 0;
padding: 0;
}
.group_index_right_hottopic ul li {
border-bottom: 1px dashed #CCCCCC;
color: #999999;
overflow: hidden;
padding: 10px 0;
list-style: none;
margin: 0;
}
.group_index_right_hottopic ul li h3 {margin: 0;padding:0;white-space: nowrap; overflow: hidden;}
.group_index_right_hottopic ul li .info{overflow: hidden;margin-top: 10px;font-size: 12px;}
.group_index_right_hottopic ul li .info .left{float: left}
.group_index_right_hottopic ul li .info .right{float: right}
/*小组分类*/
.catelist{ margin-bottom: 20px;overflow: hidden;}
.catelist ul{}
.catelist ul li{float:left;width:150px;font-size:14px;}
/*分类下小组*/
.categroup{}
.categroup ul{}
.categroup ul li{padding:10px;border-bottom: 1px dashed #CCCCCC;overflow:hidden;}
.categroup ul li img{float:left;padding:0 10px 0 0;}
/*帖子页*/
.newtopic{}
.newtopic ul, .newtopic ul li{list-style: none;margin:0;padding:0;}
.newtopic ul{}
.newtopic ul li{border-top: 1px dashed #CCCCCC;padding: 5px 0;}
.title2{float:right;border: 1px solid #DDDDDD;border-bottom:none;margin-top:10px;}
.title2 li{width:150px;border-bottom: 1px solid #DDDDDD;font-size:12px;padding:5px;line-height: 15px;overflow: hidden;white-space: nowrap;text-overflow: ellipsis;}
.btool{
border-top: 1px solid #EEEEEE;
font-size: 12px;
padding: 10px 10px 0 10px;
text-align: right;}
.btool a{margin-left:10px;padding:0px;color:#999999}
.bltool a{margin-right:10px;padding:0px;}
.after-view{font-size:14px;}
/*专辑*/
.album{}
.album li{float:left;width:225px;margin: 0 5px 10px;height: 80px;}
.album li .al{float:left;width:50px;height:50px;text-align:center;}
.album li .al .num{background:#F0F0F0;padding:10px 0}
.album li .al .tz{background:#CCCCCC;}
.album li .ar{margin-left:60px;}
.album li .ar h3{margin:0px;font-weight:bold;}
.album li .ar .info{}
.album li .ar .time{color:#999999;}
/**
帖子附件
*/
.topic_attach{
background-color: #FFEAAA;
border:dashed 2px #EDCEBA;
padding:10px;
}
.topic_attach ul{list-style: none;margin:0;padding: 0;}
.topic_attach ul li{list-style: none;margin: 0;padding: 0;}
/**帖子视频**/
.topic_video{
background-color: #FFFFFF;
border:dashed 2px #66afe9;
padding:10px;
}
.topic_video iframe{width: 100%;height:450px;}
@media (max-width: 575.98px) {
.topic_video iframe{width: 100%;height:230px;}
}
Binary file not shown.
Binary file not shown.