mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 11:44:10 +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
|
* load javascript, JS filters
|
||||||
**/
|
**/
|
||||||
Context::addJsFilter($this->module_path.'tpl/filter', 'input_password.xml');
|
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/document/lang');
|
||||||
Context::loadLang('./modules/comment/lang');
|
Context::loadLang('./modules/comment/lang');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,192 +1,177 @@
|
||||||
/**
|
/**
|
||||||
* @file modules/board/js/board.js
|
* @file modules/board/js/board.js
|
||||||
* @author NHN (developers@xpressengine.com)
|
* @author NHN (developers@xpressengine.com)
|
||||||
* @brief board 모듈의 javascript
|
* @brief board 모듈의 javascript
|
||||||
**/
|
**/
|
||||||
|
|
||||||
/* complete tp insert document */
|
/* complete tp insert document */
|
||||||
function completeDocumentInserted(ret_obj)
|
function completeDocumentInserted(ret_obj)
|
||||||
{
|
{
|
||||||
var error = ret_obj.error;
|
var error = ret_obj.error;
|
||||||
var message = ret_obj.message;
|
var message = ret_obj.message;
|
||||||
var mid = ret_obj.mid;
|
var mid = ret_obj.mid;
|
||||||
var document_srl = ret_obj.document_srl;
|
var document_srl = ret_obj.document_srl;
|
||||||
var category_srl = ret_obj.category_srl;
|
var category_srl = ret_obj.category_srl;
|
||||||
|
|
||||||
if (ret_obj.redirect_url) {
|
if (ret_obj.redirect_url) {
|
||||||
redirect(ret_obj.redirect_url);
|
redirect(ret_obj.redirect_url);
|
||||||
} else {
|
} else {
|
||||||
var url;
|
var url;
|
||||||
if(!document_srl)
|
if(!document_srl)
|
||||||
{
|
{
|
||||||
url = current_url.setQuery('mid',mid).setQuery('act','');
|
url = current_url.setQuery('mid',mid).setQuery('act','');
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||||
}
|
}
|
||||||
if(category_srl) url = url.setQuery('category',category_srl);
|
if(category_srl) url = url.setQuery('category',category_srl);
|
||||||
redirect(url);
|
redirect(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* delete the document */
|
/* delete the document */
|
||||||
function completeDeleteDocument(ret_obj)
|
function completeDeleteDocument(ret_obj)
|
||||||
{
|
{
|
||||||
var error = ret_obj.error;
|
var error = ret_obj.error;
|
||||||
var message = ret_obj.message;
|
var message = ret_obj.message;
|
||||||
var mid = ret_obj.mid;
|
var mid = ret_obj.mid;
|
||||||
var page = ret_obj.page;
|
var page = ret_obj.page;
|
||||||
|
|
||||||
var url = current_url.setQuery('mid',mid).setQuery('act','').setQuery('document_srl','');
|
var url = current_url.setQuery('mid',mid).setQuery('act','').setQuery('document_srl','');
|
||||||
if(page) url = url.setQuery('page',page);
|
if(page) url = url.setQuery('page',page);
|
||||||
redirect(url);
|
redirect(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* document search */
|
/* document search */
|
||||||
function completeSearch(ret_obj, response_tags, params, fo_obj)
|
function completeSearch(ret_obj, response_tags, params, fo_obj)
|
||||||
{
|
{
|
||||||
fo_obj.submit();
|
fo_obj.submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
function completeVote(ret_obj)
|
function completeVote(ret_obj)
|
||||||
{
|
{
|
||||||
var error = ret_obj.error;
|
var error = ret_obj.error;
|
||||||
var message = ret_obj.message;
|
var message = ret_obj.message;
|
||||||
redirect(window.location.href);
|
redirect(window.location.href);
|
||||||
}
|
}
|
||||||
|
|
||||||
// current page reload
|
// current page reload
|
||||||
function completeReload(ret_obj)
|
function completeReload(ret_obj)
|
||||||
{
|
{
|
||||||
var error = ret_obj.error;
|
var error = ret_obj.error;
|
||||||
var message = ret_obj.message;
|
var message = ret_obj.message;
|
||||||
redirect(window.location.href);
|
redirect(window.location.href);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* complete to insert comment*/
|
/* complete to insert comment*/
|
||||||
function completeInsertComment(ret_obj)
|
function completeInsertComment(ret_obj)
|
||||||
{
|
{
|
||||||
var error = ret_obj.error;
|
var error = ret_obj.error;
|
||||||
var message = ret_obj.message;
|
var message = ret_obj.message;
|
||||||
var mid = ret_obj.mid;
|
var mid = ret_obj.mid;
|
||||||
var document_srl = ret_obj.document_srl;
|
var document_srl = ret_obj.document_srl;
|
||||||
var comment_srl = ret_obj.comment_srl;
|
var comment_srl = ret_obj.comment_srl;
|
||||||
if (ret_obj.redirect_url) {
|
if (ret_obj.redirect_url) {
|
||||||
redirect(ret_obj.redirect_url);
|
redirect(ret_obj.redirect_url);
|
||||||
} else {
|
} else {
|
||||||
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
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;
|
if (comment_srl) url = url.setQuery('comment_srl',comment_srl)+"#comment_"+comment_srl;
|
||||||
redirect(url);
|
redirect(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* delete the comment */
|
/* delete the comment */
|
||||||
function completeDeleteComment(ret_obj)
|
function completeDeleteComment(ret_obj)
|
||||||
{
|
{
|
||||||
var error = ret_obj.error;
|
var error = ret_obj.error;
|
||||||
var message = ret_obj.message;
|
var message = ret_obj.message;
|
||||||
var mid = ret_obj.mid;
|
var mid = ret_obj.mid;
|
||||||
var document_srl = ret_obj.document_srl;
|
var document_srl = ret_obj.document_srl;
|
||||||
var page = ret_obj.page;
|
var page = ret_obj.page;
|
||||||
|
|
||||||
if (ret_obj.redirect_url) {
|
if (ret_obj.redirect_url) {
|
||||||
redirect(ret_obj.redirect_url);
|
redirect(ret_obj.redirect_url);
|
||||||
} else {
|
} else {
|
||||||
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||||
if (page) url = url.setQuery('page',page);
|
if (page) url = url.setQuery('page',page);
|
||||||
redirect(url);
|
redirect(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* delete the trackback */
|
/* delete the trackback */
|
||||||
function completeDeleteTrackback(ret_obj)
|
function completeDeleteTrackback(ret_obj)
|
||||||
{
|
{
|
||||||
var error = ret_obj.error;
|
var error = ret_obj.error;
|
||||||
var message = ret_obj.message;
|
var message = ret_obj.message;
|
||||||
var mid = ret_obj.mid;
|
var mid = ret_obj.mid;
|
||||||
var document_srl = ret_obj.document_srl;
|
var document_srl = ret_obj.document_srl;
|
||||||
var page = ret_obj.page;
|
var page = ret_obj.page;
|
||||||
|
|
||||||
if (ret_obj.redirect_url) {
|
if (ret_obj.redirect_url) {
|
||||||
redirect(ret_obj.redirect_url);
|
redirect(ret_obj.redirect_url);
|
||||||
} else {
|
} else {
|
||||||
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
var url = current_url.setQuery('mid',mid).setQuery('document_srl',document_srl).setQuery('act','');
|
||||||
if (page) url = url.setQuery('page',page);
|
if (page) url = url.setQuery('page',page);
|
||||||
redirect(url);
|
redirect(url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* change category */
|
/* change category */
|
||||||
function doChangeCategory()
|
function doChangeCategory()
|
||||||
{
|
{
|
||||||
var category_srl = jQuery('#board_category option:selected').val();
|
var category_srl = jQuery('#board_category option:selected').val();
|
||||||
location.href = decodeURI(current_url).setQuery('category',category_srl).setQuery('page', '');
|
location.href = decodeURI(current_url).setQuery('category',category_srl).setQuery('page', '');
|
||||||
}
|
}
|
||||||
|
|
||||||
/* scrap */
|
/* scrap */
|
||||||
function doScrap(document_srl)
|
function doScrap(document_srl)
|
||||||
{
|
{
|
||||||
var params = [];
|
var params = [];
|
||||||
params.document_srl = document_srl;
|
params.document_srl = document_srl;
|
||||||
jQuery.exec_json('member.procMemberScrapDocument', params);
|
jQuery.exec_json('member.procMemberScrapDocument', params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
jQuery(function($){
|
jQuery(function($){
|
||||||
|
|
||||||
/* remove comment_srl and unnecessary page number from short URL */
|
$(document.body).click(function(e){
|
||||||
var match = location.pathname.match(/\/([a-zA-Z0-9_]+)\/([0-9]+)\/(comment|page)\/([0-9]+)$/);
|
var t = $(e.target), act, params = {};
|
||||||
if (match && match[1] === window.current_mid) {
|
|
||||||
var newpath = location.pathname.replace(/\/(comment|page)\/([0-9]+)$/, '');
|
if(t.parents('.layer_voted_member').length === 0 && !t.is('.layer_voted_member')){
|
||||||
if (location.hash && location.hash !== '#') {
|
$('.layer_voted_member').hide().remove();
|
||||||
newpath += location.hash;
|
}
|
||||||
}
|
|
||||||
if (history.replaceState) {
|
if(!t.is('a[class^=voted_member_]')) return;
|
||||||
history.replaceState({
|
|
||||||
rx_replaced: true,
|
var srl = parseInt(t.attr('class').replace(/[^0-9]/g,''));
|
||||||
prev: location.pathname,
|
if(!srl) return;
|
||||||
}, '', newpath);
|
|
||||||
}
|
if(t.hasClass('comment')){
|
||||||
}
|
act = 'comment.getCommentVotedMemberList';
|
||||||
|
params =
|
||||||
$(document.body).click(function(e){
|
{'comment_srl':srl,'point':(t.hasClass('votedup')?1:-1)};
|
||||||
var t = $(e.target), act, params = {};
|
}else{
|
||||||
|
act = 'document.getDocumentVotedMemberList';
|
||||||
if(t.parents('.layer_voted_member').length === 0 && !t.is('.layer_voted_member')){
|
params =
|
||||||
$('.layer_voted_member').hide().remove();
|
{'document_srl':srl,'point':(t.hasClass('votedup')?1:-1)};
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!t.is('a[class^=voted_member_]')) return;
|
$.exec_json(act, params, function(data){
|
||||||
|
var l = data.voted_member_list;
|
||||||
var srl = parseInt(t.attr('class').replace(/[^0-9]/g,''));
|
var ul = [];
|
||||||
if(!srl) return;
|
|
||||||
|
if(!l || l.length === 0) return;
|
||||||
if(t.hasClass('comment')){
|
|
||||||
act = 'comment.getCommentVotedMemberList';
|
$.each(l,function(){
|
||||||
params =
|
ul.push(this.nick_name);
|
||||||
{'comment_srl':srl,'point':(t.hasClass('votedup')?1:-1)};
|
});
|
||||||
}else{
|
|
||||||
act = 'document.getDocumentVotedMemberList';
|
t.after($('<ul>')
|
||||||
params =
|
.addClass('layer_voted_member')
|
||||||
{'document_srl':srl,'point':(t.hasClass('votedup')?1:-1)};
|
.css({'position':'absolute','top':e.pageY+5,'left':e.pageX})
|
||||||
}
|
.append('<li>'+ul.join('</li><li>')+'</li>')
|
||||||
|
);
|
||||||
$.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