Added : ajax comments
Updated : Playlist Added : New template functions
This commit is contained in:
parent
69158c5fe5
commit
fae5bbe6e3
13 changed files with 348 additions and 28 deletions
|
@ -1411,12 +1411,20 @@ if(!empty($mode))
|
|||
assign('comments_voting',$_POST['comments_voting']);
|
||||
|
||||
if($_POST['admin']=='yes' && has_access('admin_access',true))
|
||||
Template(BASEDIR.'/'.ADMINDIR.'/'.TEMPLATEFOLDER.'/cbv2/layout/blocks/comments.html',false);
|
||||
else
|
||||
Template('blocks/comments/comments.html');
|
||||
{
|
||||
Template(BASEDIR.'/'.ADMINDIR.'/'.TEMPLATEFOLDER.'/cbv3/layout/blocks/comments.html',false);
|
||||
exit();
|
||||
}else
|
||||
{
|
||||
$template = get_template('comments');
|
||||
}
|
||||
|
||||
assign('commentPagination','yes');
|
||||
Template('blocks/pagination.html');
|
||||
|
||||
$template .= get_template('pagination');
|
||||
|
||||
echo json_encode(array('success'=>'yes','output'=>$template));
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
|
@ -227,6 +227,151 @@ switch($mode){
|
|||
}
|
||||
break;
|
||||
|
||||
case 'add_comment';
|
||||
{
|
||||
$type = $_POST['type'];
|
||||
switch($type)
|
||||
{
|
||||
case 'v':
|
||||
case 'video':
|
||||
default:
|
||||
{
|
||||
$id = mysql_clean($_POST['obj_id']);
|
||||
$comment = $_POST['comment'];
|
||||
if($comment=='undefined')
|
||||
$comment = '';
|
||||
$reply_to = $_POST['reply_to'];
|
||||
|
||||
$cid = $cbvid->add_comment($comment,$id,$reply_to);
|
||||
}
|
||||
break;
|
||||
case 'u':
|
||||
case 'c':
|
||||
{
|
||||
|
||||
$id = mysql_clean($_POST['obj_id']);
|
||||
$comment = $_POST['comment'];
|
||||
if($comment=='undefined')
|
||||
$comment = '';
|
||||
$reply_to = $_POST['reply_to'];
|
||||
|
||||
$cid = $userquery->add_comment($comment,$id,$reply_to);
|
||||
}
|
||||
break;
|
||||
case 't':
|
||||
case 'topic':
|
||||
{
|
||||
|
||||
$id = mysql_clean($_POST['obj_id']);
|
||||
$comment = $_POST['comment'];
|
||||
if($comment=='undefined')
|
||||
$comment = '';
|
||||
$reply_to = $_POST['reply_to'];
|
||||
|
||||
$cid = $cbgroup->add_comment($comment,$id,$reply_to);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'cl':
|
||||
case 'collection':
|
||||
{
|
||||
$id = mysql_clean($_POST['obj_id']);
|
||||
$comment = $_POST['comment'];
|
||||
if($comment=='undefined')
|
||||
$comment = '';
|
||||
$reply_to = $_POST['reply_to'];
|
||||
|
||||
$cid = $cbcollection->add_comment($comment,$id,$reply_to);
|
||||
}
|
||||
break;
|
||||
|
||||
case "p":
|
||||
case "photo":
|
||||
{
|
||||
$id = mysql_clean($_POST['obj_id']);
|
||||
$comment = $_POST['comment'];
|
||||
if($comment=='undefined')
|
||||
$comment = '';
|
||||
$reply_to = $_POST['reply_to'];
|
||||
$cid = $cbphoto->add_comment($comment,$id,$reply_to);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
if(error())
|
||||
{
|
||||
exit(json_encode(array('err'=>error())));
|
||||
}
|
||||
|
||||
$comment = $myquery->get_comment($cid);
|
||||
assign('comment',$comment);
|
||||
$template = get_template('single_comment');
|
||||
$array = array(
|
||||
'msg' => msg(),
|
||||
'comment' => $template,
|
||||
'success' => 'ok',
|
||||
'cid' => $cid
|
||||
);
|
||||
|
||||
echo json_encode($array);
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
case "get_comments":
|
||||
{
|
||||
$params = array();
|
||||
$limit = config('comments_per_page');
|
||||
$page = $_POST['page'];
|
||||
$params['type'] = mysql_clean($_POST['type']);
|
||||
$params['type_id'] = mysql_clean($_POST['type_id']);
|
||||
$params['last_update'] = mysql_clean($_POST['last_update']);
|
||||
$params['limit'] = create_query_limit($page,$limit);
|
||||
|
||||
$admin = "";
|
||||
if($_POST['admin']=='yes' && has_access('admin_access',true))
|
||||
{
|
||||
$params['cache'] ='no';
|
||||
$admin = "yes";
|
||||
}
|
||||
$comments = $myquery->getComments($params);
|
||||
//Adding Pagination
|
||||
$total_pages = count_pages($_POST['total_comments'],$limit);
|
||||
assign('object_type',mysql_clean($_POST['object_type']));
|
||||
//Pagination
|
||||
$pages->paginate($total_pages,$page,NULL,NULL,'<a href="javascript:void(0)"
|
||||
onClick="getComments(\''.$params['type'].'\',\''.$params['type_id'].'\',\''.$params['last_update'].'\',
|
||||
\'#page#\',\''.$_POST['total_comments'].'\',\''.mysql_clean($_POST['object_type']).'\',\''.$admin.'\')">#page#</a>');
|
||||
|
||||
assign('comments',$comments);
|
||||
assign('type',$params['type']);
|
||||
assign('type_id',$params['type_id']);
|
||||
assign('last_update',$params['last_update']);
|
||||
assign('total',$_POST['total_comments']);
|
||||
assign('total_pages',$total_pages);
|
||||
assign('comments_voting',$_POST['comments_voting']);
|
||||
|
||||
if($_POST['admin']=='yes' && has_access('admin_access',true))
|
||||
{
|
||||
Template(BASEDIR.'/'.ADMINDIR.'/'.TEMPLATEFOLDER.'/cbv3/layout/blocks/comments.html',false);
|
||||
exit();
|
||||
}else
|
||||
{
|
||||
$template = get_template('comments');
|
||||
}
|
||||
|
||||
assign('commentPagination','yes');
|
||||
|
||||
$template .= get_template('pagination');
|
||||
|
||||
echo json_encode(array('success'=>'yes','output'=>$template));
|
||||
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
exit(json_encode(array('err'=>array(lang('Invalid request')))));
|
||||
}
|
||||
|
|
|
@ -590,7 +590,7 @@ class cbactions
|
|||
$db->delete(tbl($this->playlist_items_tbl),array("playlist_item_id"),array($id));
|
||||
//Update total items in the playlist
|
||||
$db->update(tbl('playlists'),array('total_items','last_update'),
|
||||
array('|f|total_items-1',now())," playlist_id='".$pid."' ");
|
||||
array('|f|total_items-1',now())," playlist_id='".$item['playlist_id']."' ");
|
||||
|
||||
e(lang("playlist_item_delete"),"m");
|
||||
}
|
||||
|
|
|
@ -266,6 +266,7 @@
|
|||
|
||||
if(!$mail->Send())
|
||||
{
|
||||
if(!DEVELOPMENT_MODE)
|
||||
e("Mailer Error: " . $mail->ErrorInfo);
|
||||
return false;
|
||||
}else
|
||||
|
@ -3166,6 +3167,25 @@
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* set_config
|
||||
* runtime configuration..
|
||||
* overwrites existin $Cbucket->configs ...
|
||||
*
|
||||
* @param STRING $var
|
||||
* @param STRING $val
|
||||
*
|
||||
* @return true
|
||||
*/
|
||||
function set_config($var,$val)
|
||||
{
|
||||
global $Cbucket;
|
||||
$Cbucket->configs[$var] = $val;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if ( !function_exists('cb_show_page') ) {
|
||||
function cb_show_page ( $var = false ) {
|
||||
global $Cbucket;
|
||||
|
@ -3242,6 +3262,33 @@ function get_mature_thumb ( $object, $size = null, $output = null ) {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get comment author...
|
||||
*
|
||||
* @param ARRAY $comment
|
||||
* @return STRING $author
|
||||
*/
|
||||
function comment_author($comment)
|
||||
{
|
||||
if($comment['userid'])
|
||||
{
|
||||
//means registered user has made a comment..
|
||||
return $comment['username'];
|
||||
}else
|
||||
{
|
||||
//Show what guest has put in for name
|
||||
return $comment['anonym_name'];
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Alias of comment_author
|
||||
* @param type $comment
|
||||
* @return type
|
||||
*/
|
||||
function get_comment_author($comment){ return comment_author($comment); }
|
||||
|
||||
//Including videos functions
|
||||
include("functions_videos.php");
|
||||
//Including Users Functions
|
||||
|
|
|
@ -1096,4 +1096,40 @@
|
|||
$rating = apply_filters($rating, 'show-rating');
|
||||
cb_call_functions('show_rating',$rating);
|
||||
}
|
||||
|
||||
|
||||
/***
|
||||
* fetch template files as defined int he template config
|
||||
* @param file
|
||||
* @param type , display | fetch
|
||||
*/
|
||||
function get_template($file,$type='fetch')
|
||||
{
|
||||
$defaults = array(
|
||||
'single_comment' => 'blocks/comments/comment.html',
|
||||
'comments' => 'blocks/comments/comments.html',
|
||||
'pagination' => 'blocks/pagination.html'
|
||||
);
|
||||
|
||||
|
||||
$files = config('template_files');
|
||||
|
||||
if($files[$file])
|
||||
{
|
||||
$the_file = $files[$file];
|
||||
}else
|
||||
{
|
||||
$the_file = $defaults[$file];
|
||||
}
|
||||
|
||||
if($the_file)
|
||||
{
|
||||
|
||||
if($type=='fetch')
|
||||
return fetch($the_file);
|
||||
else
|
||||
template($the_file);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
|
@ -8,9 +8,12 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="span7 comment-text">
|
||||
<h6>posted by username 4 days ago</h6>
|
||||
{$time=niceTime($comment.date_added)}
|
||||
{$phrase=lang('posted by %s %s ')}
|
||||
{$author=comment_author($comment)}
|
||||
<h6>{$phrase|sprintf:$author:$time}</h6>
|
||||
<div class="height5"></div>
|
||||
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
|
||||
{$comment.comment}
|
||||
</div>
|
||||
|
||||
<div class="inlineBlock pull-right absolute comment-options" style="top:-13px; right: 0px;">
|
||||
|
@ -30,3 +33,4 @@
|
|||
</div>
|
||||
|
||||
<div class="clearfix"></div>
|
||||
<hr/>
|
|
@ -248,6 +248,33 @@ function toggleBox(bttn,box)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get Comments via ajax
|
||||
*/
|
||||
|
||||
var comments_voting = 'no';
|
||||
function get_comments(type,type_id,last_update,pageNum,total,object_type,admin)
|
||||
{
|
||||
|
||||
amplify.request('main',
|
||||
{
|
||||
mode:'get_comments',
|
||||
page:pageNum,type:type,
|
||||
type_id:type_id,
|
||||
object_type : object_type,
|
||||
last_update : last_update,
|
||||
total_comments : total,
|
||||
comments_voting : comments_voting,admin : admin
|
||||
},function(data){
|
||||
|
||||
|
||||
$('#comments').hide();
|
||||
$('#comments').html(data.output);
|
||||
$('#comments').fadeIn('slow');
|
||||
})
|
||||
}
|
||||
|
||||
// CLIPBUCKET MAIN FUNCTIONS ----------------------
|
||||
|
||||
|
||||
|
@ -605,3 +632,25 @@ function send_private_message(e) {
|
|||
$('#confirm .modal-body').html('');
|
||||
$('#confirm-yes').unbind('click');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Add comment
|
||||
*/
|
||||
function add_comment()
|
||||
{
|
||||
var comment_form = '#comment-form';
|
||||
$('#add-comment-button').button('loading');
|
||||
|
||||
form_data = $(comment_form).serialize();
|
||||
form_data += '&mode=add_comment';
|
||||
|
||||
amplify.request('main',form_data,function(data){
|
||||
|
||||
$('#add-comment-button').button('reset');
|
||||
if(data.err)
|
||||
{
|
||||
displayError(data.err);
|
||||
}
|
||||
})
|
||||
}
|
|
@ -53,12 +53,12 @@
|
|||
$(document).ready(function(){
|
||||
|
||||
//Adding Comment Hover effect
|
||||
$('.comment').bind('mouseover',function(e){
|
||||
$('.comment').live('mouseover',function(e){
|
||||
$(this).find('.comment-options').show();
|
||||
});
|
||||
|
||||
//Adding Comment Mouse-leave effect
|
||||
$('.comment').bind('mouseout',function(e){
|
||||
$('.comment').live('mouseout',function(e){
|
||||
$(this).find('.comment-options').hide();
|
||||
});
|
||||
|
||||
|
|
|
@ -137,10 +137,10 @@
|
|||
{foreach $playlists as $playlist}
|
||||
{include_template_file file='blocks/playlist.html' playlist=$playlist}
|
||||
{/foreach}
|
||||
|
||||
{else}
|
||||
<div class="no-playlist alert alert-info">{lang code="<strong>Hey there!</strong> You have not created any playlist, please create one now or read our playlist guide."}</div>
|
||||
{/if}
|
||||
|
||||
<div class="no-playlist alert alert-info {if $playlists}display-none{/if}">{lang code="<strong>Hey there!</strong> You have not created any playlist, please create one now or read our playlist guide."}</div>
|
||||
|
||||
</div>
|
||||
|
||||
{/if}
|
||||
|
@ -279,10 +279,12 @@
|
|||
</ul>
|
||||
{/if}
|
||||
</form>
|
||||
|
||||
<div class="alert alert-info {if $total_items>0}display-none{/if}" id="no-playlist-items-div">{lang code='You do not have any items in this playlist, to add videos, goto any video page and click add to and follow the name'}</div>
|
||||
|
||||
{/if}
|
||||
|
||||
|
||||
<div class="alert alert-info {if $total_items>0}display-none{/if}" id="no-playlist-items-div">{lang code='You do not have any items in this playlist, to add videos, goto any video page and click add to and follow the name'}</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
<!-- Watch Video Template $Id$ -->
|
||||
{$object_type='video'}
|
||||
{$type='v'}
|
||||
|
||||
<h1>{$video.title}</h1>
|
||||
|
||||
<div class="row">
|
||||
|
@ -116,26 +119,47 @@
|
|||
<div class="comments video-comments">
|
||||
<h3>All Comments (4,555)</h3>
|
||||
|
||||
<div class="add-comment row-fluid">
|
||||
<div style="background-color: #333; height: 50px" class="spanauto">
|
||||
<img src="http://placehold.it/62x62"/>
|
||||
<form id="comment-form" method="post" onsubmit="return false;">
|
||||
<input type="hidden" name="type" value="v"/>
|
||||
<input type="hidden" name="obj_id" value="{$video.videoid}"/>
|
||||
|
||||
<div class="add-comment row-fluid relative">
|
||||
<div class="inlineblock moveL marginR10 add-comment-uphoto">
|
||||
<img src="{$userquery->avatar($userquery->udetails)}"/>
|
||||
</div>
|
||||
<textarea class="input-xlarge span650
|
||||
comment-textarea" id="textarea" rows="3"></textarea>
|
||||
comment-textarea" id="comment-text" rows="3" name="comment"
|
||||
{if userid()} placeholder="{lang code='type something to comment....'}"{else}
|
||||
disabled{/if}
|
||||
></textarea>
|
||||
|
||||
{if !userid()}
|
||||
<div class="absolute comment-login"><a href="" class="btn">Please login to make a comment</a></div>
|
||||
{/if}
|
||||
|
||||
<div class="clearfix"></div>
|
||||
<div align="right">
|
||||
|
||||
<button class="btn btn-primary">Add video response</button>
|
||||
<button class="btn">Post comment</button>
|
||||
<button class="btn" onclick="add_comment('v')"
|
||||
data-loading-text="{lang code='Adding comment..'}"
|
||||
id="add-comment-button">Post comment</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<div class="height20"></div>
|
||||
|
||||
{section name=foo loop=4}
|
||||
{include file="$layout_dir/blocks/comment.html" cid=$smarty.section.foo.iteration}
|
||||
{/section}
|
||||
|
||||
<div id="comments"></div>
|
||||
|
||||
<script>
|
||||
$(document).ready(function()
|
||||
{
|
||||
comments_voting = '{$vdo.comment_voting}';
|
||||
get_comments('{$type}','{$vdo.videoid}','{$vdo.last_commented}',1,'{$vdo.comments_count}','{$object_type}')
|
||||
}
|
||||
);
|
||||
</script>
|
||||
|
||||
<div align="right">
|
||||
<div class="btn-group inlineblock">
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
*/
|
||||
|
||||
include("template_functions.php");
|
||||
|
||||
include("configs.php");
|
||||
|
||||
/**
|
||||
* add_thumb_size(336x44)
|
||||
|
|
|
@ -40,6 +40,9 @@
|
|||
.left{left:0px}
|
||||
.right{right:0px}
|
||||
|
||||
.moveL,.floatL,.float-left{float: left}
|
||||
.moveR,.floatR,.float-right{float: right}
|
||||
|
||||
.valignTop{vertical-align: top}
|
||||
.valignMid{vertical-align: middle}
|
||||
|
||||
|
@ -146,8 +149,10 @@ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff3019', end
|
|||
/* Comments */
|
||||
.comment{margin-top: 10px; margin-bottom: 10px}
|
||||
.comment .comment-text{margin-left: 10px}
|
||||
.comment-textarea{margin-left: 10px !important; width: 650px}
|
||||
.comment-textarea{margin-left: 10px !important; width: 660px !important}
|
||||
.comment-options{display: none}
|
||||
.add-comment-uphoto{width: 62px; height: 62px}
|
||||
.comment-login{top: 10px; left: 90px}
|
||||
|
||||
/* Author Box */
|
||||
.author-box-content{width: 220px}
|
||||
|
|
Loading…
Add table
Reference in a new issue