detail.blade.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. @extends('theme::layout.public')
  2. @section('seo_title'){{ parse_seo_template('seo_question_title',$question) }}@endsection
  3. @section('seo_keyword'){{ parse_seo_template('seo_question_keyword',$question) }}@endsection
  4. @section('seo_description'){{ parse_seo_template('seo_question_description',$question) }}@endsection
  5. @section('css')
  6. <link href="{{ asset('/static/js/summernote/summernote.css')}}" rel="stylesheet">
  7. @endsection
  8. @section('content')
  9. <div class="row mt-10">
  10. <div class="col-xs-12 col-md-9 main">
  11. <div class="widget-question">
  12. <h4 class="title">
  13. @if($question->price>0)
  14. <span class="text-gold">
  15. <i class="fa fa-database"></i> {{ $question->price }}
  16. </span>
  17. @endif
  18. {{ $question->title }}
  19. </h4>
  20. @if($question->tags)
  21. <ul class="taglist-inline">
  22. @foreach($question->tags as $tag)
  23. <li class="tagPopup"><a class="tag" href="{{ route('ask.tag.index',['id'=>$tag->id]) }}">{{ $tag->name }}</a></li>
  24. @endforeach
  25. </ul>
  26. @endif
  27. <div class="description mt-10">
  28. <div class="text-fmt ">
  29. {!! $question->description !!}
  30. </div>
  31. <div class="post-opt mt-10">
  32. <ul class="list-inline">
  33. <li><a class="comments" data-toggle="collapse" href="#comments-question-{{ $question->id }}" aria-expanded="false" aria-controls="comment-{{ $question->id }}"><i class="fa fa-comment-o"></i> {{ $question->comments }} 条评论</a></li>
  34. @if($question->status!==2 && Auth()->check() && (Auth()->user()->id === $question->user_id) )
  35. <li><a href="{{ route('ask.question.edit',['id'=>$question->id]) }}" class="edit" data-toggle="tooltip" data-placement="right" title="" data-original-title="补充细节,以得到更准确的答案"><i class="fa fa-edit"></i> 编辑</a></li>
  36. <li><a href="#" data-toggle="modal" data-target="#appendReward" ><i class="fa fa-database"></i> 追加悬赏</a></li>
  37. @endif
  38. </ul>
  39. </div>
  40. @include('theme::comment.collapse',['comment_source_type'=>'question','comment_source_id'=>$question->id,'hide_cancel'=>false])
  41. @if(Setting()->get('website_share_code')!='')
  42. <div class="mb-10">
  43. {!! Setting()->get('website_share_code') !!}
  44. </div>
  45. @endif
  46. </div>
  47. </div>
  48. <h2 class="title h5 mt-30 mb-20 post-title text-center">
  49. <a href="{{ route('ask.question.detail',['id'=>$question->id]) }}">查看全部 {{ $question->answers }} 个回答</a>
  50. </h2>
  51. <div class="widget-answers mt-15">
  52. <div class="media">
  53. <div class="media-left">
  54. <a href="{{ route('auth.space.index',['user_id'=>$answer->user_id]) }}" class="avatar-link user-card" target="_blank">
  55. <img class="avatar-40 hidden-xs" src="{{ get_user_avatar($answer->user_id,'middle') }}" alt="{{ $answer->user['name'] }}">
  56. </a>
  57. </div>
  58. <div class="media-body">
  59. <div class="media-heading">
  60. <strong><a href="{{ route('auth.space.index',['user_id'=>$answer->user_id]) }}" class="mr-5 user-card">{{ $answer->user['name'] }}</a></strong>
  61. @if($answer->user->title)
  62. <span class="text-muted"> - {{ $answer->user->title }}</span>
  63. @endif
  64. <span class="answer-time text-muted hidden-xs">{{ timestamp_format($answer->created_at) }}</span>
  65. </div>
  66. <div class="content">
  67. <div class="text-fmt mt-10 mb-10">{!! $answer->content !!}</div>
  68. </div>
  69. <div class="media-footer">
  70. <ul class="list-inline mb-20">
  71. <li><a class="comments" data-toggle="collapse" href="#comments-answer-{{ $answer->id }}" aria-expanded="false" aria-controls="comment-{{ $answer->id }}"><i class="fa fa-comment-o"></i> {{ $answer->comments }} 条评论</a></li>
  72. @if(Auth()->check())
  73. @if($question->status!==2 && (Auth()->user()->id === $answer->user_id || Auth()->user()->can('admin.login')))
  74. <li><a href="{{ route('ask.answer.edit',['id'=>$answer->id]) }}" data-toggle="tooltip" data-placement="right" title="" data-original-title="继续完善回答内容"><i class="fa fa-edit"></i> 编辑</a></li>
  75. @endif
  76. @if($question->status!==2 && (Auth()->user()->id === $question->user_id || Auth()->user()->can('admin.login') ))
  77. <li><a href="#" class="adopt-answer" data-toggle="modal" data-target="#adoptAnswer" data-answer_id="{{ $answer->id }}" data-answer_content="{{ str_limit($answer->content,200) }}"><i class="fa fa-check-square-o"></i> 采纳为最佳答案</a></li>
  78. @endif
  79. @endif
  80. <li class="pull-right">
  81. <button class="btn btn-default btn-sm btn-support" data-source_id="{{ $answer->id }}" data-source_type="answer" data-support_num="{{ $answer->supports }}"><i class="fa fa-thumbs-o-up"></i> {{ $answer->supports }}</button>
  82. </li>
  83. </ul>
  84. </div>
  85. @include('theme::comment.collapse',['comment_source_type'=>'answer','comment_source_id'=>$answer->id,'hide_cancel'=>false])
  86. </div>
  87. </div>
  88. <div class="text-center">
  89. <h2 class="title h5 mt30 mb20 post-title">
  90. <a href="{{ route('ask.question.detail',['id'=>$question->id]) }}">查看全部 {{ $question->answers }} 个回答</a>
  91. </h2>
  92. </div>
  93. </div>
  94. </div>
  95. <div class="col-xs-12 col-md-3 side">
  96. <div class="widget-box">
  97. <ul class="widget-action list-unstyled">
  98. <li>
  99. @if(Auth()->check() && Auth()->user()->isFollowed(get_class($question),$question->id))
  100. <button type="button" id="follow-button" class="btn btn-success btn-sm active" data-source_type = "question" data-source_id = "{{ $question->id }}" data-show_num="true" data-toggle="tooltip" data-placement="right" title="" data-original-title="关注后将获得更新提醒">已关注</button>
  101. @else
  102. <button type="button" id="follow-button" class="btn btn-success btn-sm" data-source_type = "question" data-source_id = "{{ $question->id }}" data-show_num="true" data-toggle="tooltip" data-placement="right" title="" data-original-title="关注后将获得更新提醒">关注</button>
  103. @endif
  104. <strong id="follower-num">{{ $question->followers }}</strong> 关注
  105. </li>
  106. <li>
  107. @if(Auth()->check() && Auth()->user()->isCollected(get_class($question),$question->id))
  108. <button id="collect-button" class="btn btn-default btn-sm" data-loading-text="加载中..." data-source_type = "question" data-source_id = "{{ $question->id }}" > 已收藏</button>
  109. @else
  110. <button id="collect-button" class="btn btn-default btn-sm" data-source_type = "question" data-source_id = "{{ $question->id }}" > 收藏</button>
  111. @endif
  112. <strong id="collection-num">{{ $question->collections }}</strong> 收藏,<strong class="no-stress">{{ $question->views }}</strong> 浏览
  113. </li>
  114. <li>
  115. <i class="fa fa-clock-o"></i>
  116. @if($question->hide==0)
  117. <a href="{{ route('auth.space.index',['user_id'=>$question->user_id]) }}" target="_blank">{{ $question->user->name }}</a>
  118. @endif
  119. 提出于 {{ timestamp_format($question->created_at) }}</li>
  120. </ul>
  121. </div>
  122. <div class="widget-box">
  123. <h2 class="h4 widget-box__title">相似问题</h2>
  124. <ul class="widget-links list-unstyled list-text">
  125. @foreach($relatedQuestions as $relatedQuestion)
  126. @if($relatedQuestion->id != $question->id)
  127. <li class="widget-links__item">
  128. <a title="{{ $relatedQuestion->title }}" href="{{ route('ask.question.detail',['question_id'=>$relatedQuestion->id]) }}">{{ $relatedQuestion->title }}</a>
  129. <small class="text-muted">{{ $relatedQuestion->answers }} 回答</small>
  130. </li>
  131. @endif
  132. @endforeach
  133. </ul>
  134. </div>
  135. </div>
  136. </div>
  137. @if(Auth()->check())
  138. <div class="modal" id="appendReward" tabindex="-1" role="dialog" aria-labelledby="appendRewardLabel">
  139. <div class="modal-dialog" role="document">
  140. <div class="modal-content">
  141. <div class="modal-header">
  142. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  143. <h4 class="modal-title" id="appendModalLabel">追加悬赏</h4>
  144. </div>
  145. <div class="modal-body">
  146. <div class="alert alert-success" role="alert" id="rewardAlert">
  147. <i class="fa fa-exclamation-circle"></i> 提高悬赏,以提高问题的关注度!
  148. </div>
  149. <form class="form-inline" id="rewardForm" action="{{ route('ask.question.appendReward',['id'=>$question->id]) }}" method="post">
  150. <input type="hidden" name="_token" value="{{ csrf_token() }}">
  151. <div class="form-group">
  152. <label for="reward">追加</label>
  153. <select class="form-control" name="coins" id="question_coins">
  154. <option value="3" selected>3</option><option value="5">5</option><option value="10">10</option><option value="15">15</option><option value="30">30</option><option value="50">50</option><option value="80">80</option><option value="100">100</option>
  155. </select> 个金币
  156. </div>
  157. <div class="form-group">
  158. (您目前共有 <span class="text-gold">{{ Auth()->user()->userData->coins }}</span> 个金币)
  159. </div>
  160. </form>
  161. </div>
  162. <div class="modal-footer">
  163. <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
  164. <button type="button" class="btn btn-primary" id="appendRewardSubmit">确认追加</button>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. <div class="modal" id="adoptAnswer" tabindex="-1" role="dialog" aria-labelledby="adoptAnswerLabel">
  170. <div class="modal-dialog" role="document">
  171. <div class="modal-content">
  172. <div class="modal-header">
  173. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  174. <h4 class="modal-title" id="adoptModalLabel">采纳回答</h4>
  175. </div>
  176. <div class="modal-body">
  177. <div class="alert alert-warning" role="alert" id="adoptAnswerAlert">
  178. <i class="fa fa-exclamation-circle"></i> 确认采纳该回答为最佳答案?
  179. </div>
  180. <blockquote id="answer_quote"></blockquote>
  181. </div>
  182. <div class="modal-footer">
  183. <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
  184. <button type="button" class="btn btn-primary" id="adoptAnswerSubmit">采纳该回答</button>
  185. </div>
  186. </div>
  187. </div>
  188. </div>
  189. @endif
  190. @endsection
  191. @section('script')
  192. <script src="{{ asset('/static/js/summernote/summernote.min.js') }}"></script>
  193. <script type="text/javascript">
  194. $(document).ready(function() {
  195. @if(Auth()->check())
  196. /*问题悬赏*/
  197. $("#appendRewardSubmit").click(function(){
  198. var user_total_conis = '{{ Auth()->user()->userData->coins }}';
  199. var reward = $("#question_coins").val();
  200. if(reward>parseInt(user_total_conis)){
  201. $("#rewardAlert").attr('class','alert alert-warning');
  202. $("#rewardAlert").html('金币数不能大于'+user_total_conis);
  203. }else{
  204. $("#rewardAlert").empty();
  205. $("#rewardAlert").attr('class','');
  206. $("#rewardForm").submit();
  207. }
  208. });
  209. @endif
  210. /*评论提交*/
  211. $(".comment-btn").click(function(){
  212. var source_id = $(this).data('source_id');
  213. var source_type = $(this).data('source_type');
  214. var to_user_id = $(this).data('to_user_id');
  215. var token = $(this).data('token');
  216. var content = $("#comment-"+source_type+"-content-"+source_id).val();
  217. add_comment(token,source_type,source_id,content,to_user_id);
  218. $("#comment-content-"+source_id+"").val('');
  219. });
  220. $(".widget-comments").on('show.bs.collapse', function () {
  221. load_comments($(this).data('source_type'),$(this).data('source_id'));
  222. });
  223. $(".widget-comments").on('hide.bs.collapse', function () {
  224. clear_comments($(this).data('source_type'),$(this).data('source_id'));
  225. });
  226. /*收藏问题或文章*/
  227. $("#collect-button").click(function(){
  228. $("#collect-button").button('loading');
  229. var source_type = $(this).data('source_type');
  230. var source_id = $(this).data('source_id');
  231. var collection_num = $("#collection-num").html();
  232. $.get('/collect/'+source_type+'/'+source_id,function(msg){
  233. $("#collect-button").removeClass('disabled');
  234. $("#collect-button").removeAttr('disabled');
  235. if(msg=='collected'){
  236. $("#collect-button").html('已收藏');
  237. $("#collection-num").html(parseInt(collection_num)+1);
  238. }else{
  239. $("#collect-button").html('收藏');
  240. $("#collection-num").html(parseInt(collection_num)-1);
  241. }
  242. });
  243. });
  244. /*采纳回答为最佳答案*/
  245. $(".adopt-answer").click(function(){
  246. var answer_id = $(this).data('answer_id');
  247. $("#adoptAnswerSubmit").attr('data-answer_id',answer_id);
  248. $("#answer_quote").html($(this).data('answer_content'));
  249. });
  250. $("#adoptAnswerSubmit").click(function(){
  251. document.location = "/answer/adopt/"+$(this).data('answer_id');
  252. });
  253. });
  254. </script>
  255. @endsection