mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-27 06:13:32 +09:00
Split frontend URL rewriting script into its own file loaded separately
This commit is contained in:
parent
16cf779d7a
commit
0de42bebaf
3 changed files with 202 additions and 193 deletions
|
|
@ -105,7 +105,11 @@ class BoardView extends Board
|
|||
* load javascript, JS filters
|
||||
**/
|
||||
Context::addJsFilter($this->module_path.'tpl/filter', 'input_password.xml');
|
||||
Context::addJsFile($this->module_path.'tpl/js/board.js');
|
||||
Context::loadFile([$this->module_path.'tpl/js/board.js', 'head']);
|
||||
if (config('url.rewrite') > 1)
|
||||
{
|
||||
Context::loadFile([$this->module_path.'tpl/js/rewrite.js', 'body']);
|
||||
}
|
||||
Context::loadLang('./modules/document/lang');
|
||||
Context::loadLang('./modules/comment/lang');
|
||||
|
||||
|
|
|
|||
|
|
@ -1,192 +1,177 @@
|
|||
/**
|
||||
* @file modules/board/js/board.js
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief board 모듈의 javascript
|
||||
**/
|
||||
|
||||
/* complete tp insert document */
|
||||
function completeDocumentInserted(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
var mid = ret_obj.mid;
|
||||
var document_srl = ret_obj.document_srl;
|
||||
var category_srl = ret_obj.category_srl;
|
||||
|
||||
if (ret_obj.redirect_url) {
|
||||
redirect(ret_obj.redirect_url);
|
||||
} else {
|
||||
var url;
|
||||
if(!document_srl)
|
||||
{
|
||||
url = current_url.setQuery('mid',mid).setQuery('act','');
|
||||
}
|
||||
else
|
||||
{
|
||||
url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
}
|
||||
if(category_srl) url = url.setQuery('category',category_srl);
|
||||
redirect(url);
|
||||
}
|
||||
}
|
||||
|
||||
/* delete the document */
|
||||
function completeDeleteDocument(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
var mid = ret_obj.mid;
|
||||
var page = ret_obj.page;
|
||||
|
||||
var url = current_url.setQuery('mid',mid).setQuery('act','').setQuery('document_srl','');
|
||||
if(page) url = url.setQuery('page',page);
|
||||
redirect(url);
|
||||
}
|
||||
|
||||
/* document search */
|
||||
function completeSearch(ret_obj, response_tags, params, fo_obj)
|
||||
{
|
||||
fo_obj.submit();
|
||||
}
|
||||
|
||||
function completeVote(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
redirect(window.location.href);
|
||||
}
|
||||
|
||||
// current page reload
|
||||
function completeReload(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
redirect(window.location.href);
|
||||
}
|
||||
|
||||
/* complete to insert comment*/
|
||||
function completeInsertComment(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
var mid = ret_obj.mid;
|
||||
var document_srl = ret_obj.document_srl;
|
||||
var comment_srl = ret_obj.comment_srl;
|
||||
if (ret_obj.redirect_url) {
|
||||
redirect(ret_obj.redirect_url);
|
||||
} else {
|
||||
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
if (comment_srl) url = url.setQuery('comment_srl',comment_srl)+"#comment_"+comment_srl;
|
||||
redirect(url);
|
||||
}
|
||||
}
|
||||
|
||||
/* delete the comment */
|
||||
function completeDeleteComment(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
var mid = ret_obj.mid;
|
||||
var document_srl = ret_obj.document_srl;
|
||||
var page = ret_obj.page;
|
||||
|
||||
if (ret_obj.redirect_url) {
|
||||
redirect(ret_obj.redirect_url);
|
||||
} else {
|
||||
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
if (page) url = url.setQuery('page',page);
|
||||
redirect(url);
|
||||
}
|
||||
}
|
||||
|
||||
/* delete the trackback */
|
||||
function completeDeleteTrackback(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
var mid = ret_obj.mid;
|
||||
var document_srl = ret_obj.document_srl;
|
||||
var page = ret_obj.page;
|
||||
|
||||
if (ret_obj.redirect_url) {
|
||||
redirect(ret_obj.redirect_url);
|
||||
} else {
|
||||
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
if (page) url = url.setQuery('page',page);
|
||||
redirect(url);
|
||||
}
|
||||
}
|
||||
|
||||
/* change category */
|
||||
function doChangeCategory()
|
||||
{
|
||||
var category_srl = jQuery('#board_category option:selected').val();
|
||||
location.href = decodeURI(current_url).setQuery('category',category_srl).setQuery('page', '');
|
||||
}
|
||||
|
||||
/* scrap */
|
||||
function doScrap(document_srl)
|
||||
{
|
||||
var params = [];
|
||||
params.document_srl = document_srl;
|
||||
jQuery.exec_json('member.procMemberScrapDocument', params);
|
||||
}
|
||||
|
||||
|
||||
jQuery(function($){
|
||||
|
||||
/* remove comment_srl and unnecessary page number from short URL */
|
||||
var match = location.pathname.match(/\/([a-zA-Z0-9_]+)\/([0-9]+)\/(comment|page)\/([0-9]+)$/);
|
||||
if (match && match[1] === window.current_mid) {
|
||||
var newpath = location.pathname.replace(/\/(comment|page)\/([0-9]+)$/, '');
|
||||
if (location.hash && location.hash !== '#') {
|
||||
newpath += location.hash;
|
||||
}
|
||||
if (history.replaceState) {
|
||||
history.replaceState({
|
||||
rx_replaced: true,
|
||||
prev: location.pathname,
|
||||
}, '', newpath);
|
||||
}
|
||||
}
|
||||
|
||||
$(document.body).click(function(e){
|
||||
var t = $(e.target), act, params = {};
|
||||
|
||||
if(t.parents('.layer_voted_member').length === 0 && !t.is('.layer_voted_member')){
|
||||
$('.layer_voted_member').hide().remove();
|
||||
}
|
||||
|
||||
if(!t.is('a[class^=voted_member_]')) return;
|
||||
|
||||
var srl = parseInt(t.attr('class').replace(/[^0-9]/g,''));
|
||||
if(!srl) return;
|
||||
|
||||
if(t.hasClass('comment')){
|
||||
act = 'comment.getCommentVotedMemberList';
|
||||
params =
|
||||
{'comment_srl':srl,'point':(t.hasClass('votedup')?1:-1)};
|
||||
}else{
|
||||
act = 'document.getDocumentVotedMemberList';
|
||||
params =
|
||||
{'document_srl':srl,'point':(t.hasClass('votedup')?1:-1)};
|
||||
}
|
||||
|
||||
$.exec_json(act, params, function(data){
|
||||
var l = data.voted_member_list;
|
||||
var ul = [];
|
||||
|
||||
if(!l || l.length === 0) return;
|
||||
|
||||
$.each(l,function(){
|
||||
ul.push(this.nick_name);
|
||||
});
|
||||
|
||||
t.after($('<ul>')
|
||||
.addClass('layer_voted_member')
|
||||
.css({'position':'absolute','top':e.pageY+5,'left':e.pageX})
|
||||
.append('<li>'+ul.join('</li><li>')+'</li>')
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
/**
|
||||
* @file modules/board/js/board.js
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief board 모듈의 javascript
|
||||
**/
|
||||
|
||||
/* complete tp insert document */
|
||||
function completeDocumentInserted(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
var mid = ret_obj.mid;
|
||||
var document_srl = ret_obj.document_srl;
|
||||
var category_srl = ret_obj.category_srl;
|
||||
|
||||
if (ret_obj.redirect_url) {
|
||||
redirect(ret_obj.redirect_url);
|
||||
} else {
|
||||
var url;
|
||||
if(!document_srl)
|
||||
{
|
||||
url = current_url.setQuery('mid',mid).setQuery('act','');
|
||||
}
|
||||
else
|
||||
{
|
||||
url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
}
|
||||
if(category_srl) url = url.setQuery('category',category_srl);
|
||||
redirect(url);
|
||||
}
|
||||
}
|
||||
|
||||
/* delete the document */
|
||||
function completeDeleteDocument(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
var mid = ret_obj.mid;
|
||||
var page = ret_obj.page;
|
||||
|
||||
var url = current_url.setQuery('mid',mid).setQuery('act','').setQuery('document_srl','');
|
||||
if(page) url = url.setQuery('page',page);
|
||||
redirect(url);
|
||||
}
|
||||
|
||||
/* document search */
|
||||
function completeSearch(ret_obj, response_tags, params, fo_obj)
|
||||
{
|
||||
fo_obj.submit();
|
||||
}
|
||||
|
||||
function completeVote(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
redirect(window.location.href);
|
||||
}
|
||||
|
||||
// current page reload
|
||||
function completeReload(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
redirect(window.location.href);
|
||||
}
|
||||
|
||||
/* complete to insert comment*/
|
||||
function completeInsertComment(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
var mid = ret_obj.mid;
|
||||
var document_srl = ret_obj.document_srl;
|
||||
var comment_srl = ret_obj.comment_srl;
|
||||
if (ret_obj.redirect_url) {
|
||||
redirect(ret_obj.redirect_url);
|
||||
} else {
|
||||
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
if (comment_srl) url = url.setQuery('comment_srl',comment_srl)+"#comment_"+comment_srl;
|
||||
redirect(url);
|
||||
}
|
||||
}
|
||||
|
||||
/* delete the comment */
|
||||
function completeDeleteComment(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
var mid = ret_obj.mid;
|
||||
var document_srl = ret_obj.document_srl;
|
||||
var page = ret_obj.page;
|
||||
|
||||
if (ret_obj.redirect_url) {
|
||||
redirect(ret_obj.redirect_url);
|
||||
} else {
|
||||
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
if (page) url = url.setQuery('page',page);
|
||||
redirect(url);
|
||||
}
|
||||
}
|
||||
|
||||
/* delete the trackback */
|
||||
function completeDeleteTrackback(ret_obj)
|
||||
{
|
||||
var error = ret_obj.error;
|
||||
var message = ret_obj.message;
|
||||
var mid = ret_obj.mid;
|
||||
var document_srl = ret_obj.document_srl;
|
||||
var page = ret_obj.page;
|
||||
|
||||
if (ret_obj.redirect_url) {
|
||||
redirect(ret_obj.redirect_url);
|
||||
} else {
|
||||
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||
if (page) url = url.setQuery('page',page);
|
||||
redirect(url);
|
||||
}
|
||||
}
|
||||
|
||||
/* change category */
|
||||
function doChangeCategory()
|
||||
{
|
||||
var category_srl = jQuery('#board_category option:selected').val();
|
||||
location.href = decodeURI(current_url).setQuery('category',category_srl).setQuery('page', '');
|
||||
}
|
||||
|
||||
/* scrap */
|
||||
function doScrap(document_srl)
|
||||
{
|
||||
var params = [];
|
||||
params.document_srl = document_srl;
|
||||
jQuery.exec_json('member.procMemberScrapDocument', params);
|
||||
}
|
||||
|
||||
|
||||
jQuery(function($){
|
||||
|
||||
$(document.body).click(function(e){
|
||||
var t = $(e.target), act, params = {};
|
||||
|
||||
if(t.parents('.layer_voted_member').length === 0 && !t.is('.layer_voted_member')){
|
||||
$('.layer_voted_member').hide().remove();
|
||||
}
|
||||
|
||||
if(!t.is('a[class^=voted_member_]')) return;
|
||||
|
||||
var srl = parseInt(t.attr('class').replace(/[^0-9]/g,''));
|
||||
if(!srl) return;
|
||||
|
||||
if(t.hasClass('comment')){
|
||||
act = 'comment.getCommentVotedMemberList';
|
||||
params =
|
||||
{'comment_srl':srl,'point':(t.hasClass('votedup')?1:-1)};
|
||||
}else{
|
||||
act = 'document.getDocumentVotedMemberList';
|
||||
params =
|
||||
{'document_srl':srl,'point':(t.hasClass('votedup')?1:-1)};
|
||||
}
|
||||
|
||||
$.exec_json(act, params, function(data){
|
||||
var l = data.voted_member_list;
|
||||
var ul = [];
|
||||
|
||||
if(!l || l.length === 0) return;
|
||||
|
||||
$.each(l,function(){
|
||||
ul.push(this.nick_name);
|
||||
});
|
||||
|
||||
t.after($('<ul>')
|
||||
.addClass('layer_voted_member')
|
||||
.css({'position':'absolute','top':e.pageY+5,'left':e.pageX})
|
||||
.append('<li>'+ul.join('</li><li>')+'</li>')
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
|||
20
modules/board/tpl/js/rewrite.js
Normal file
20
modules/board/tpl/js/rewrite.js
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
'use strict';
|
||||
|
||||
/**
|
||||
* Remove comment_srl and unnecessary page number from short URL
|
||||
*/
|
||||
(function() {
|
||||
var match = location.pathname.match(/\/([a-zA-Z0-9_]+)\/([0-9]+)\/(comment|page)\/([0-9]+)$/);
|
||||
if (match && match[1] === window.current_mid) {
|
||||
var newpath = location.pathname.replace(/\/(comment|page)\/([0-9]+)$/, '');
|
||||
if (location.hash && location.hash !== '#') {
|
||||
newpath += location.hash;
|
||||
}
|
||||
if (history.replaceState) {
|
||||
history.replaceState({
|
||||
rx_replaced: true,
|
||||
prev: location.pathname,
|
||||
}, '', newpath);
|
||||
}
|
||||
}
|
||||
})();
|
||||
Loading…
Add table
Add a link
Reference in a new issue