20
.gitignore
vendored
|
|
@ -1,6 +1,22 @@
|
|||
.DS_Store
|
||||
Thumbs.db
|
||||
|
||||
config.user.inc.php
|
||||
/files/
|
||||
/build/
|
||||
|
||||
codeception.yml
|
||||
/tests/_output/
|
||||
/tests/*.suite.yml
|
||||
|
||||
/node_modules/
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
/bower_components/
|
||||
/vendor/
|
||||
composer.phar
|
||||
composer.lock
|
||||
|
||||
.idea
|
||||
*.sublime-workspace
|
||||
*.sublime-project
|
||||
.codeintel
|
||||
|
||||
|
|
|
|||
9
.jshintignore
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
common/js/jquery*.js
|
||||
common/js/modernizr.js
|
||||
common/js/xe.js
|
||||
common/js/x.js
|
||||
common/js/*.min.js
|
||||
common/js/unittest/*
|
||||
common/js/plugins/*
|
||||
common/js/foggyLayer.js
|
||||
common/js/html5.js
|
||||
68
.jshintrc
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{
|
||||
"globalstrict": false,
|
||||
"undef": false,
|
||||
"eqeqeq": false,
|
||||
"browser": true,
|
||||
"devel": true,
|
||||
"jquery": true,
|
||||
"evil": true,
|
||||
"globals": {
|
||||
"window": true,
|
||||
"current_url": true,
|
||||
"exec_json": true,
|
||||
"exec_xml": true,
|
||||
"procFilter": true,
|
||||
"xe": true,
|
||||
"request_uri": true,
|
||||
"xAddEventListener": false,
|
||||
"xResizeEvent": false,
|
||||
"xScrollEvent": false,
|
||||
"xAppendChild": false,
|
||||
"xClientHeight": false,
|
||||
"xClientWidth": false,
|
||||
"xCreateElement": false,
|
||||
"xDef": false,
|
||||
"xDeleteCookie": false,
|
||||
"xDisplay": false,
|
||||
"xEvent": false,
|
||||
"xFirstChild": false,
|
||||
"xGetBodyWidth": false,
|
||||
"xGetBodyHeight": false,
|
||||
"xGetComputedStyle": false,
|
||||
"xGetCookie": false,
|
||||
"xGetElementById": false,
|
||||
"xGetElementsByAttribute": false,
|
||||
"xGetElementsByClassName": false,
|
||||
"xGetElementsByTagName": false,
|
||||
"xGetURLArguments": false,
|
||||
"xHeight": false,
|
||||
"xHex": false,
|
||||
"xHide": false,
|
||||
"xInnerHtml": false,
|
||||
"xLeft": false,
|
||||
"xMoveTo": false,
|
||||
"xName": false,
|
||||
"xNextSib": false,
|
||||
"xNum": false,
|
||||
"xOffsetLeft": false,
|
||||
"xOffsetTop": false,
|
||||
"xPad": false,
|
||||
"xPageX": false,
|
||||
"xPageY": false,
|
||||
"xParent": false,
|
||||
"xPreventDefault": false,
|
||||
"xPrevSib": false,
|
||||
"xRemoveEventListener": false,
|
||||
"xResizeTo": false,
|
||||
"xScrollLeft": false,
|
||||
"xScrollTop": false,
|
||||
"xSetCookie": false,
|
||||
"xShow": false,
|
||||
"xStr": false,
|
||||
"xTop": false,
|
||||
"xVisibility": false,
|
||||
"xWidth": false,
|
||||
"xZIndex": false,
|
||||
"xStopPropagation": false
|
||||
}
|
||||
}
|
||||
33
.travis.yml
|
|
@ -1,11 +1,30 @@
|
|||
language: php
|
||||
php:
|
||||
- 5.2
|
||||
- 5.3
|
||||
- 5.4
|
||||
- 5.5
|
||||
- 5.3
|
||||
- 5.4
|
||||
- 5.5
|
||||
- 5.6
|
||||
- 7
|
||||
- hhvm
|
||||
matrix:
|
||||
allow_failures:
|
||||
- php: 7
|
||||
- php: hhvm
|
||||
before_script:
|
||||
- npm install -g grunt-cli
|
||||
- npm install
|
||||
- travis_retry composer self-update
|
||||
- npm install -g grunt-cli
|
||||
- npm install
|
||||
- if [ $(phpenv version-name) != "5.3" ]; then composer install; fi
|
||||
- if [ $(phpenv version-name) != "5.3" ]; then mysql -e 'create database xe_test;';
|
||||
fi
|
||||
- if [ $(phpenv version-name) != "5.3" ]; then echo "USE mysql;\nUPDATE user SET password=PASSWORD('travis')
|
||||
WHERE user='travis';\nFLUSH PRIVILEGES;\n" | mysql -u root; fi
|
||||
- if [ $(phpenv version-name) != "5.3" ]; then php -S localhost:8000 & fi
|
||||
script:
|
||||
- grunt lint
|
||||
- grunt lint
|
||||
- grunt minify
|
||||
- if [ $(phpenv version-name) != "5.3" ]; then ./vendor/bin/codecept run -d --env travis;
|
||||
fi
|
||||
notifications:
|
||||
slack:
|
||||
secure: V4p13KlqML94RK0KTlHNJwrdwOK1K6n7sfxs6oILCJTqBfGuqN2fCglnxX78QEUwnl8LWrwSdA4AnUVfZqv6N5g7zlDDr2ZU2+a4XVApmEss3/C0g9zsYNlFfkJqChvtMsV29UiBjSfqn/coAVLtY1wbCYJYk3Wc2nmB/3Qti9Y=
|
||||
|
|
|
|||
|
|
@ -5,21 +5,21 @@ Issue 작성 시 참고해주세요.
|
|||
|
||||
* 작성하려는 이슈가 이미 있는지 검색 후 등록해주세요. 비슷한 이슈가 있다면 댓글로 추가 내용을 덧붙일 수 있습니다.
|
||||
* 이슈에는 하나의 문제 또는 제안을 작성해주세요. 절대 하나의 이슈에 2개 이상의 내용을 적지마세요.
|
||||
* 이슈는 가능한 상세하고 간결하게 작성해주세요
|
||||
* 필요하다면 화면을 캡쳐하여 이미지를 업로드할 수 있습니다
|
||||
* 이슈는 가능한 상세하고 간결하게 작성해주세요.
|
||||
* 필요하다면 화면을 캡처하여 이미지를 업로드할 수 있습니다.
|
||||
|
||||
## Pull request(PR)
|
||||
* `master` 브랜치의 코드는 수정하지마세요
|
||||
* `master` 브랜치의 코드는 수정하지마세요.
|
||||
* PR은 `develop` 브랜치만 허용합니다.
|
||||
* `develop` 브랜치를 부모로한 토픽 브랜치를 활용하면 편리합니다.
|
||||
* `develop` 브랜치를 부모로 한 토픽 브랜치를 활용하면 편리합니다.
|
||||
|
||||
|
||||
## Coding Guidelines
|
||||
코드를 기여할 때 Coding conventions을 따라야합니다.
|
||||
|
||||
* 모든 text 파일의 charset은 BOM이 없는 UTF-8입니다
|
||||
* 모든 text 파일의 charset은 BOM이 없는 UTF-8입니다.
|
||||
* newline은 UNIX type을 사용합니다. 일부 파일이 다른 type을 사용하더라도 절대 고치지 마세요!
|
||||
* 들여쓰기는 1개의 탭으로 합니다
|
||||
* class 선언과 function, if, foreach, for, while 등 중괄호의 `{}`는 다음 줄에 있어야 합니다
|
||||
* 들여쓰기는 1개의 탭으로 합니다.
|
||||
* class 선언과 function, if, foreach, for, while 등 중괄호의 `{}`는 다음 줄에 있어야 합니다.
|
||||
* 마찬가지로 선언 다음에는 공백을 두지 않습니다. ex) CORRECT `if(...)`, INCORRECT `if (...)`
|
||||
* **Coding convention에 맞지 않는 코드를 발견 하더라도 목적과 관계 없는 코드는 절대 고치지 마세요**
|
||||
* **Coding convention에 맞지 않는 코드를 발견 하더라도 목적과 관계 없는 코드는 절대 고치지 마세요.**
|
||||
|
|
|
|||
117
Gruntfile.js
|
|
@ -2,7 +2,7 @@ module.exports = function(grunt) {
|
|||
"use strict";
|
||||
|
||||
var banner = '/*! Copyright (C) NAVER <http://www.navercorp.com> */\n';
|
||||
var banner_xe_js = banner + '/**!\n * @file common.js + js_app.js + xml_handler.js + xml_js_filter.js\n * @brief XE Common JavaScript\n **/\n';
|
||||
var banner_xe_js = banner + '/**!\n * @concat modernizr.js + common.js + js_app.js + xml_handler.js + xml_js_filter.js\n * @brief XE Common JavaScript\n **/\n';
|
||||
|
||||
grunt.file.defaultEncoding = 'utf8';
|
||||
|
||||
|
|
@ -22,6 +22,7 @@ module.exports = function(grunt) {
|
|||
banner: banner_xe_js
|
||||
},
|
||||
src: [
|
||||
'common/js/modernizr.js',
|
||||
'common/js/common.js',
|
||||
'common/js/js_app.js',
|
||||
'common/js/xml_handler.js',
|
||||
|
|
@ -32,7 +33,7 @@ module.exports = function(grunt) {
|
|||
'xpresseditor': {
|
||||
options: {
|
||||
stripBanners: true,
|
||||
banner: banner_xe_js
|
||||
banner: '/**!\n * @concat Xpress_Editor.js + xe_interface.js \n **/\n'
|
||||
},
|
||||
src: [
|
||||
'modules/editor/skins/xpresseditor/js/Xpress_Editor.js',
|
||||
|
|
@ -47,7 +48,18 @@ module.exports = function(grunt) {
|
|||
banner: banner_xe_js
|
||||
},
|
||||
files: {
|
||||
'common/js/xe.min.js': ['common/js/xe.js']
|
||||
'common/js/xe.min.js': ['common/js/xe.js'],
|
||||
}
|
||||
},
|
||||
'common-js-plugins': {
|
||||
files: {
|
||||
'common/js/plugins/jquery.fileupload/js/main.min.js': ['common/js/plugins/jquery.fileupload/js/main.js'],
|
||||
}
|
||||
},
|
||||
'handlebars': {
|
||||
files: {
|
||||
'common/js/plugins/handlebars/handlebars.min.js': ['common/js/plugins/handlebars/handlebars.js'],
|
||||
'common/js/plugins/handlebars.runtime/handlebars.runtime.min.js': ['common/js/plugins/handlebars.runtime/handlebars.runtime.js'],
|
||||
}
|
||||
},
|
||||
'modules': {
|
||||
|
|
@ -60,11 +72,15 @@ module.exports = function(grunt) {
|
|||
// module/editor
|
||||
'modules/editor/skins/xpresseditor/js/xpresseditor.min.js': ['modules/editor/skins/xpresseditor/js/xpresseditor.js'],
|
||||
'modules/editor/skins/xpresseditor/js/xe_textarea.min.js': ['modules/editor/skins/xpresseditor/js/xe_textarea.js'],
|
||||
'modules/editor/skins/ckeditor/js/default.min.js': ['modules/editor/skins/ckeditor/js/default.js'],
|
||||
'modules/editor/skins/ckeditor/js/xe_interface.min.js': ['modules/editor/skins/ckeditor/js/xe_interface.js'],
|
||||
'modules/editor/skins/ckeditor/js/xe_textarea.min.js': ['modules/editor/skins/ckeditor/js/xe_textarea.js'],
|
||||
'modules/editor/tpl/js/editor_common.min.js': ['modules/editor/tpl/js/editor_common.js'],
|
||||
'modules/editor/tpl/js/swfupload.min.js': ['modules/editor/tpl/js/swfupload.js'],
|
||||
'modules/editor/tpl/js/uploader.min.js': ['modules/editor/tpl/js/uploader.js'],
|
||||
'modules/editor/tpl/js/editor.min.js': ['modules/editor/tpl/js/editor.js'],
|
||||
'modules/editor/tpl/js/editor_module_config.min.js': ['modules/editor/tpl/js/editor_module_config.js'],
|
||||
'modules/editor/tpl/js/editor.app.min.js': ['modules/editor/tpl/js/editor.app.js'],
|
||||
// module/admin
|
||||
'modules/admin/tpl/js/admin.min.js': ['modules/admin/tpl/js/admin.js'],
|
||||
'modules/admin/tpl/js/config.min.js': ['modules/admin/tpl/js/config.js'],
|
||||
|
|
@ -75,6 +91,7 @@ module.exports = function(grunt) {
|
|||
'modules/board/skins/default/board.default.min.js': ['modules/board/skins/default/board.default.js'],
|
||||
'modules/board/m.skins/default/js/mboard.min.js': ['modules/board/m.skins/default/js/mboard.js'],
|
||||
'modules/board/m.skins/simpleGray/js/mboard.min.js': ['modules/board/m.skins/simpleGray/js/mboard.js'],
|
||||
'modules/board/skins/xedition/board.default.min.js': ['modules/board/skins/xedition/board.default.js'],
|
||||
// editor-component-image-gallery
|
||||
'modules/editor/components/image_gallery/tpl/gallery.min.js' : ['modules/editor/components/image_gallery/tpl/gallery.js'],
|
||||
'modules/editor/components/image_gallery/tpl/list_gallery.min.js' : ['modules/editor/components/image_gallery/tpl/list_gallery.js'],
|
||||
|
|
@ -93,81 +110,79 @@ module.exports = function(grunt) {
|
|||
'addons/oembed/oembed.min.js': ['addons/oembed/oembed.js'],
|
||||
}
|
||||
},
|
||||
'layout': {
|
||||
files: {
|
||||
'layouts/xedition/js/jquery.easing.min.js': ['layouts/xedition/js/jquery.easing.js'],
|
||||
'layouts/xedition/js/layout.min.js': ['layouts/xedition/js/layout.js'],
|
||||
'layouts/xedition/js/welcome.min.js': ['layouts/xedition/js/welcome.js'],
|
||||
}
|
||||
},
|
||||
},
|
||||
cssmin: {
|
||||
'common-css': {
|
||||
'common': {
|
||||
files: {
|
||||
'common/css/xe.min.css': ['common/css/xe.css'],
|
||||
'common/css/mobile.min.css': ['common/css/mobile.css']
|
||||
}
|
||||
},
|
||||
'module-admin-css': {
|
||||
files: {
|
||||
'modules/admin/tpl/css/admin.min.css': ['modules/admin/tpl/css/admin.css']
|
||||
}
|
||||
},
|
||||
'editor-component-image-gallery': {
|
||||
'modules': {
|
||||
files: {
|
||||
'modules/admin/tpl/css/admin.min.css': ['modules/admin/tpl/css/admin.css'],
|
||||
'modules/editor/components/image_gallery/tpl/popup.min.css': ['modules/editor/components/image_gallery/tpl/popup.css'],
|
||||
'modules/editor/components/image_gallery/tpl/slide_gallery.min.css': ['modules/editor/components/image_gallery/tpl/slide_gallery.css'],
|
||||
}
|
||||
},
|
||||
'moudle-widget-tpl': {
|
||||
files: {
|
||||
'modules/widget/tpl/css/widget.min.css': ['modules/widget/tpl/css/widget.css'],
|
||||
}
|
||||
},
|
||||
'moudle-poll': {
|
||||
files: {
|
||||
'modules/poll/tpl/css/poll.min.css': ['modules/poll/tpl/css/poll.css'],
|
||||
'modules/poll/skins/default/css/poll.min.css': ['modules/poll/skins/default/css/poll.css'],
|
||||
'modules/poll/skins/simple/css/poll.min.css': ['modules/poll/skins/simple/css/poll.css'],
|
||||
}
|
||||
},
|
||||
'moudle-editor': {
|
||||
files: {
|
||||
'modules/editor/skins/xpresseditor/css/default.min.css': ['modules/editor/skins/xpresseditor/css/default.css'],
|
||||
'modules/board/skins/default/board.default.min.css': ['modules/board/skins/default/board.default.css'],
|
||||
'modules/board/m.skins/default/css/mboard.min.css': ['modules/board/m.skins/default/css/mboard.css'],
|
||||
'modules/board/m.skins/simpleGray/css/mboard.min.css': ['modules/board/m.skins/simpleGray/css/mboard.css'],
|
||||
'modules/board/skins/xedition/board.default.min.css': ['modules/board/skins/xedition/board.default.css'],
|
||||
}
|
||||
},
|
||||
'addon-oembed': {
|
||||
'addons': {
|
||||
files: {
|
||||
'addons/oembed/jquery.oembed.min.css': ['addons/oembed/jquery.oembed.css'],
|
||||
}
|
||||
},
|
||||
'module-board': {
|
||||
'layout': {
|
||||
files: {
|
||||
'modules/board/skins/default/board.default.min.css': ['modules/board/skins/default/board.default.css'],
|
||||
'modules/board/m.skins/default/css/mboard.min.css': ['modules/board/m.skins/default/css/mboard.css'],
|
||||
'modules/board/m.skins/simpleGray/css/mboard.min.css': ['modules/board/m.skins/simpleGray/css/mboard.css']
|
||||
'layouts/xedition/css/camera.min.css': ['layouts/xedition/css/camera.css'],
|
||||
'layouts/xedition/css/layout.min.css': ['layouts/xedition/css/layout.css'],
|
||||
'layouts/xedition/css/webfont.min.css': ['layouts/xedition/css/webfont.css'],
|
||||
'layouts/xedition/css/welcome.min.css': ['layouts/xedition/css/welcome.css'],
|
||||
'layouts/xedition/css/widget.login.min.css': ['layouts/xedition/css/widget.login.css'],
|
||||
'layouts/xedition/css/xeicon.min.css': ['layouts/xedition/css/xeicon.css'],
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
jshint: {
|
||||
files: [
|
||||
'Gruntfile.js',
|
||||
'common/js/*.js', '!common/js/html5.js', '!common/js/jquery.js', '!common/js/x.js', '!common/js/xe.js',
|
||||
'common/js/*.js',
|
||||
'modules/admin/tpl/js/*.js',
|
||||
'modules/board/tpl/js/*.js',
|
||||
'modules/board/skins/*/*.js',
|
||||
'modules/editor/tpl/js/*.js',
|
||||
'modules/menu/tpl/js/*.js',
|
||||
'modules/widget/tpl/js/*.js',
|
||||
],
|
||||
options : {
|
||||
globalstrict: false,
|
||||
undef : false,
|
||||
eqeqeq: false,
|
||||
browser : true,
|
||||
globals: {
|
||||
"jQuery" : true,
|
||||
"console" : true,
|
||||
"window" : true
|
||||
},
|
||||
ignores : [
|
||||
'**/jquery*.js',
|
||||
'**/swfupload.js',
|
||||
'**/*.min.js',
|
||||
'**/**.min.js',
|
||||
'**/*-packed.js',
|
||||
'**/*.compressed.js'
|
||||
'**/*.compressed.js',
|
||||
'**/jquery-*.js',
|
||||
'**/jquery.*.js',
|
||||
'common/js/html5.js',
|
||||
'common/js/x.js',
|
||||
'common/js/xe.js',
|
||||
'common/js/modernizr.js',
|
||||
'vendor/**',
|
||||
'tests/**',
|
||||
]
|
||||
}
|
||||
},
|
||||
|
|
@ -190,6 +205,8 @@ module.exports = function(grunt) {
|
|||
'!common/css/bootstrap.css',
|
||||
'!common/css/bootstrap-responsive.css',
|
||||
'!**/*.min.css',
|
||||
'!vendor/**',
|
||||
'!tests/**',
|
||||
]
|
||||
}
|
||||
},
|
||||
|
|
@ -205,7 +222,9 @@ module.exports = function(grunt) {
|
|||
"!tests/**",
|
||||
"!tools/**",
|
||||
"!node_modules/**",
|
||||
"!libs/**"
|
||||
"!libs/**",
|
||||
"!vendor/**",
|
||||
"!tests/_output/**"
|
||||
],
|
||||
},
|
||||
}
|
||||
|
|
@ -259,9 +278,10 @@ module.exports = function(grunt) {
|
|||
if(tasks.length === 0) {
|
||||
grunt.util.spawn({
|
||||
cmd: "tar",
|
||||
args: ['cfz', 'xe.'+version+'.tar.gz', 'xe/'],
|
||||
args: ['cfz', '../xe.'+version+'.tar.gz', './'],
|
||||
opts: {
|
||||
cwd: 'build'
|
||||
cwd: 'build/xe',
|
||||
cache: false
|
||||
}
|
||||
}, function (error, result, code) {
|
||||
grunt.log.ok('Archived(full) : ' + build_dir + '/xe.'+version+'.tar.gz');
|
||||
|
|
@ -269,9 +289,10 @@ module.exports = function(grunt) {
|
|||
|
||||
grunt.util.spawn({
|
||||
cmd: "zip",
|
||||
args: ['-r', 'xe.'+version+'.zip', 'xe/'],
|
||||
args: ['-r', '../xe.'+version+'.zip', './'],
|
||||
opts: {
|
||||
cwd: 'build'
|
||||
cwd: 'build/xe',
|
||||
cache: false
|
||||
}
|
||||
}, function (error, result, code) {
|
||||
grunt.log.ok('Archived(full) : ' + build_dir + '/xe.'+version+'.zip');
|
||||
|
|
@ -303,7 +324,7 @@ module.exports = function(grunt) {
|
|||
// changed
|
||||
grunt.util.spawn({
|
||||
cmd: "git",
|
||||
args: ['diff', '--name-only', target]
|
||||
args: ['diff', '--name-only', '--diff-filter' ,'ACM', target]
|
||||
}, function (error, result, code) {
|
||||
diff = result.stdout;
|
||||
|
||||
|
|
@ -313,8 +334,8 @@ module.exports = function(grunt) {
|
|||
|
||||
// changed
|
||||
if(diff.length) {
|
||||
var args_tar = ['archive', '--prefix=xe/', '-o', 'build/xe.'+version+'.changed.tar.gz', version];
|
||||
var args_zip = ['archive', '--prefix=xe/', '-o', 'build/xe.'+version+'.changed.zip', version];
|
||||
var args_tar = ['archive', '-o', 'build/xe.'+version+'.changed.tar.gz', version];
|
||||
var args_zip = ['archive', '-o', 'build/xe.'+version+'.changed.zip', version];
|
||||
args_tar = args_tar.concat(diff);
|
||||
args_zip = args_zip.concat(diff);
|
||||
|
||||
|
|
|
|||
35
README.md
|
|
@ -5,20 +5,39 @@ XpressEngine
|
|||
[](http://www.gnu.org/licenses/gpl.html)
|
||||
[](https://github.com/xpressengine/xe-core/releases)
|
||||
|
||||
XpressEngine(XE)은 PHP로 작성한 설치형 CMS(Content Management System)입니다.
|
||||
XpressEngine(XE)은 누구나 쉽고 편하고 자유롭게 콘텐츠를 발행을 할 수 있도록 하기 위한 CMS(Content Management System)입니다.
|
||||
오픈소스 라이선스로 누구나 사용 또는 개작할 수 있으며, 개방형 프로젝트로서 누구나 개발에 참여할 수 있습니다.
|
||||
|
||||
## Support
|
||||
* Official sitie (Korean) : http://www.xpressengine.com/
|
||||
### 확장형 구조
|
||||
|
||||
XE 코어는 모듈, 애드온, 에디터 컴포넌트, 위젯, 레이아웃의 구조를 기반으로 결과물을 생성합니다.
|
||||
|
||||
이렇게 각각의 기능과 디자인이 구조적으로 연결되는 모듈형 구조는 개발 및 유지보수를 쉽게 하도록 도와주며 관리자는 손쉽게 설정과 디자인을 변경할 수 있습니다.
|
||||
|
||||
레이아웃, 모듈 스킨 그리고 위젯의 스타일과 스킨을 활용하면 여러분만의 개성을 가진 웹 사이트를 만들 수 있습니다. XE와 함께 더 다채롭고 개성있는 웹사이트를 만들어보세요!
|
||||
|
||||
### 오픈 소스 소프트웨어! 열린 프로젝트! (코드 공헌 가이드)
|
||||
많은 분들께서 개발, 디자인, 마크업 등의 전문 분야는 물론 다국어 번역, 문제점 보고 등 기능 개선 및 문제 해결을 위해 많은 노력을 해주시고 계십니다.
|
||||
|
||||
참여를 원하시는 분들은 버그 신고/제안 혹은 Pull Request 전에 [CONTRIBUTING.md](./CONTRIBUTING.md) 문서를 먼저 읽어주시기 바랍니다.
|
||||
XpressEngine은 여러분들의 개발 참여를 기다립니다.
|
||||
|
||||
## Server Requirements
|
||||
* PHP version 5.3.0 or greater (But recommend PHP >= 5.5.0)
|
||||
* MYSQL version 4.1 or greater (But recommend MYSQL >= 5.x) , MS-SQL, CUBRID
|
||||
* XML Library
|
||||
* GD Library
|
||||
* ICONV
|
||||
* session.auto_start = Off (php.ini)
|
||||
|
||||
## Maintainers
|
||||
@akasima @bnu @jhyeon1010 @khongchi @ngleader
|
||||
@akasima @bnu @jhyeon1010 @khongchi @findstar @ngleader
|
||||
|
||||
## Authors
|
||||
adrian.vasile.constantin, aerofleet, @akasima, @andreimarin, araste, @bnu, @bongkeun, bradly1, buffkj, c2joy, @canto, cbrghost, @ccata17, @ChanMyeong, chinaskyking, chschy, clench, @cometdev, @devdho, @devjin, @dionisrom, @dorami, @dragan-dan, ducduydaovn, duvent, @Eundong, @florinutz, @flourscent, @flyskyko, @ForPeople, FruitsHake, guny, @haneul, hankm2004, @hansim, haojilin, heemin, @hyeon0142, ikko, @izuzero, johnsonshu, juanlee0, k10206, kagami, @khongchi, @lansi951, @largeden, liahona, lickawtl, @mAKEkr, mayoojin, mglclub, @misol, mmx900, @mog422, mooo, mosmartin, @nagoon97, @ngleader, nicetwo, ovclas, @qw5414, @Rayyin, risapapa, rokmcssu, royallin, rubyeye, ryin005, @samswnlee, sanghunjun, @sejin7940, @smaker, @solidh, sspa3141, @stellar12, supershop, @taggon, @ucorina, unryong, venister, wdlee91, welcomeju, @YJSoft, ysnglee2000, zero
|
||||
## Contributors
|
||||
http://www.xpressengine.com/contributors
|
||||
|
||||
## Contribution Guide
|
||||
`CONTRIBUTING.md`파일을 참고하세요.
|
||||
## Support
|
||||
* Official site (Korean) : http://www.xpressengine.com/
|
||||
|
||||
## License
|
||||
Copyright 2014 NAVER Corp. <http://www.navercorp.com>
|
||||
|
|
|
|||
|
|
@ -30,8 +30,10 @@ if($_REQUEST['act'] != 'api')
|
|||
// Read func file
|
||||
require_once(_XE_PATH_ . 'addons/blogapi/blogapi.func.php');
|
||||
|
||||
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
|
||||
|
||||
// If HTTP_RAW_POST_DATA is NULL, Print error message
|
||||
if(!$GLOBALS['HTTP_RAW_POST_DATA'])
|
||||
if(!$xml)
|
||||
{
|
||||
$content = getXmlRpcFailure(1, 'Invalid Method Call');
|
||||
printContent($content);
|
||||
|
|
@ -39,7 +41,14 @@ if(!$GLOBALS['HTTP_RAW_POST_DATA'])
|
|||
|
||||
// xmlprc parsing
|
||||
// Parse the requested xmlrpc
|
||||
$xml = new SimpleXMLElement($GLOBALS['HTTP_RAW_POST_DATA']);
|
||||
if(Security::detectingXEE($xml))
|
||||
{
|
||||
header("HTTP/1.0 400 Bad Request");
|
||||
exit;
|
||||
}
|
||||
|
||||
if(version_compare(PHP_VERSION, '5.2.11', '<=')) libxml_disable_entity_loader(true);
|
||||
$xml = new SimpleXMLElement($xml, LIBXML_NONET | LIBXML_NOENT);
|
||||
|
||||
$method_name = (string)$xml->methodName;
|
||||
$params = $xml->params->param;
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ if(!defined('__XE__'))
|
|||
* @brief Counter add-on
|
||||
*/
|
||||
// Execute if called_position is before_display_content
|
||||
if($called_position == 'before_module_init' && Context::get('module') != 'admin' && Context::getResponseMethod() == 'HTML' && Context::isInstalled())
|
||||
if($called_position == 'before_module_init' && Context::get('module') != 'admin' && Context::getResponseMethod() == 'HTML' && Context::isInstalled() && !isCrawler())
|
||||
{
|
||||
$oCounterController = getController('counter');
|
||||
$oCounterController->counterExecute();
|
||||
|
|
|
|||
|
|
@ -74,10 +74,10 @@ elseif($this->act == 'getMemberMenu' && $called_position == 'before_module_proc'
|
|||
$oMemberController = getController('member');
|
||||
// Add a menu for sending message
|
||||
if($logged_info->is_admin == 'Y' || $target_member_info->allow_message == 'Y' || ($target_member_info->allow_message == 'F' && $oCommunicationModel->isFriend($member_srl)))
|
||||
$oMemberController->addMemberPopupMenu(getUrl('', 'module', 'communication', 'act', 'dispCommunicationSendMessage', 'receiver_srl', $member_srl), 'cmd_send_message', '', 'popup');
|
||||
$oMemberController->addMemberPopupMenu(getUrl('', 'mid', Context::get('cur_mid'), 'act', 'dispCommunicationSendMessage', 'receiver_srl', $member_srl), 'cmd_send_message', '', 'popup');
|
||||
// Add a menu for listing friends (if a friend is new)
|
||||
if(!$oCommunicationModel->isAddedFriend($member_srl))
|
||||
$oMemberController->addMemberPopupMenu(getUrl('', 'module', 'communication', 'act', 'dispCommunicationAddFriend', 'target_srl', $member_srl), 'cmd_add_friend', '', 'popup');
|
||||
$oMemberController->addMemberPopupMenu(getUrl('', 'mid', Context::get('cur_mid'), 'act', 'dispCommunicationAddFriend', 'target_srl', $member_srl), 'cmd_add_friend', '', 'popup');
|
||||
}
|
||||
}
|
||||
/* End of file member_communication.addon.php */
|
||||
|
|
|
|||
|
|
@ -781,12 +781,6 @@
|
|||
from: 'htmlstring'
|
||||
}
|
||||
}),
|
||||
new $.fn.oembed.OEmbedProvider("gravtar", "photo", ["mailto:.+"], null, {
|
||||
templateRegex: /mailto:([^\/]+).*/,
|
||||
template: function (wm, email) {
|
||||
return '<img src="http://gravatar.com/avatar/' + email.md5() + '.jpg" alt="on Gravtar" class="jqoaImg">';
|
||||
}
|
||||
}),
|
||||
|
||||
//Rich
|
||||
new $.fn.oembed.OEmbedProvider("twitter", "rich", ["twitter.com/.+"], "https://api.twitter.com/1/statuses/oembed.json"),
|
||||
|
|
@ -1062,137 +1056,3 @@
|
|||
})
|
||||
];
|
||||
})(jQuery);
|
||||
|
||||
//This is needed for gravatar :(
|
||||
String.prototype.md5 = function () {
|
||||
var a = function (a, b) {
|
||||
var c = (a & 65535) + (b & 65535);
|
||||
var d = (a >> 16) + (b >> 16) + (c >> 16);
|
||||
return d << 16 | c & 65535
|
||||
};
|
||||
var b = function (a, b) {
|
||||
return a << b | a >>> 32 - b
|
||||
};
|
||||
var c = function (c, d, e, f, g, h) {
|
||||
return a(b(a(a(d, c), a(f, h)), g), e)
|
||||
};
|
||||
var d = function (a, b, d, e, f, g, h) {
|
||||
return c(b & d | ~b & e, a, b, f, g, h)
|
||||
};
|
||||
var e = function (a, b, d, e, f, g, h) {
|
||||
return c(b & e | d & ~e, a, b, f, g, h)
|
||||
};
|
||||
var f = function (a, b, d, e, f, g, h) {
|
||||
return c(b ^ d ^ e, a, b, f, g, h)
|
||||
};
|
||||
var g = function (a, b, d, e, f, g, h) {
|
||||
return c(d ^ (b | ~e), a, b, f, g, h)
|
||||
};
|
||||
var h = function (b) {
|
||||
var c, h, i, j, k, l = b.length;
|
||||
var m = 1732584193;
|
||||
var n = -271733879;
|
||||
var o = -1732584194;
|
||||
var p = 271733878;
|
||||
for(k = 0; k < l; k += 16) {
|
||||
c = m;
|
||||
h = n;
|
||||
i = o;
|
||||
j = p;
|
||||
m = d(m, n, o, p, b[k + 0], 7, -680876936);
|
||||
p = d(p, m, n, o, b[k + 1], 12, -389564586);
|
||||
o = d(o, p, m, n, b[k + 2], 17, 606105819);
|
||||
n = d(n, o, p, m, b[k + 3], 22, -1044525330);
|
||||
m = d(m, n, o, p, b[k + 4], 7, -176418897);
|
||||
p = d(p, m, n, o, b[k + 5], 12, 1200080426);
|
||||
o = d(o, p, m, n, b[k + 6], 17, -1473231341);
|
||||
n = d(n, o, p, m, b[k + 7], 22, -45705983);
|
||||
m = d(m, n, o, p, b[k + 8], 7, 1770035416);
|
||||
p = d(p, m, n, o, b[k + 9], 12, -1958414417);
|
||||
o = d(o, p, m, n, b[k + 10], 17, -42063);
|
||||
n = d(n, o, p, m, b[k + 11], 22, -1990404162);
|
||||
m = d(m, n, o, p, b[k + 12], 7, 1804603682);
|
||||
p = d(p, m, n, o, b[k + 13], 12, -40341101);
|
||||
o = d(o, p, m, n, b[k + 14], 17, -1502002290);
|
||||
n = d(n, o, p, m, b[k + 15], 22, 1236535329);
|
||||
m = e(m, n, o, p, b[k + 1], 5, -165796510);
|
||||
p = e(p, m, n, o, b[k + 6], 9, -1069501632);
|
||||
o = e(o, p, m, n, b[k + 11], 14, 643717713);
|
||||
n = e(n, o, p, m, b[k + 0], 20, -373897302);
|
||||
m = e(m, n, o, p, b[k + 5], 5, -701558691);
|
||||
p = e(p, m, n, o, b[k + 10], 9, 38016083);
|
||||
o = e(o, p, m, n, b[k + 15], 14, -660478335);
|
||||
n = e(n, o, p, m, b[k + 4], 20, -405537848);
|
||||
m = e(m, n, o, p, b[k + 9], 5, 568446438);
|
||||
p = e(p, m, n, o, b[k + 14], 9, -1019803690);
|
||||
o = e(o, p, m, n, b[k + 3], 14, -187363961);
|
||||
n = e(n, o, p, m, b[k + 8], 20, 1163531501);
|
||||
m = e(m, n, o, p, b[k + 13], 5, -1444681467);
|
||||
p = e(p, m, n, o, b[k + 2], 9, -51403784);
|
||||
o = e(o, p, m, n, b[k + 7], 14, 1735328473);
|
||||
n = e(n, o, p, m, b[k + 12], 20, -1926607734);
|
||||
m = f(m, n, o, p, b[k + 5], 4, -378558);
|
||||
p = f(p, m, n, o, b[k + 8], 11, -2022574463);
|
||||
o = f(o, p, m, n, b[k + 11], 16, 1839030562);
|
||||
n = f(n, o, p, m, b[k + 14], 23, -35309556);
|
||||
m = f(m, n, o, p, b[k + 1], 4, -1530992060);
|
||||
p = f(p, m, n, o, b[k + 4], 11, 1272893353);
|
||||
o = f(o, p, m, n, b[k + 7], 16, -155497632);
|
||||
n = f(n, o, p, m, b[k + 10], 23, -1094730640);
|
||||
m = f(m, n, o, p, b[k + 13], 4, 681279174);
|
||||
p = f(p, m, n, o, b[k + 0], 11, -358537222);
|
||||
o = f(o, p, m, n, b[k + 3], 16, -722521979);
|
||||
n = f(n, o, p, m, b[k + 6], 23, 76029189);
|
||||
m = f(m, n, o, p, b[k + 9], 4, -640364487);
|
||||
p = f(p, m, n, o, b[k + 12], 11, -421815835);
|
||||
o = f(o, p, m, n, b[k + 15], 16, 530742520);
|
||||
n = f(n, o, p, m, b[k + 2], 23, -995338651);
|
||||
m = g(m, n, o, p, b[k + 0], 6, -198630844);
|
||||
p = g(p, m, n, o, b[k + 7], 10, 1126891415);
|
||||
o = g(o, p, m, n, b[k + 14], 15, -1416354905);
|
||||
n = g(n, o, p, m, b[k + 5], 21, -57434055);
|
||||
m = g(m, n, o, p, b[k + 12], 6, 1700485571);
|
||||
p = g(p, m, n, o, b[k + 3], 10, -1894986606);
|
||||
o = g(o, p, m, n, b[k + 10], 15, -1051523);
|
||||
n = g(n, o, p, m, b[k + 1], 21, -2054922799);
|
||||
m = g(m, n, o, p, b[k + 8], 6, 1873313359);
|
||||
p = g(p, m, n, o, b[k + 15], 10, -30611744);
|
||||
o = g(o, p, m, n, b[k + 6], 15, -1560198380);
|
||||
n = g(n, o, p, m, b[k + 13], 21, 1309151649);
|
||||
m = g(m, n, o, p, b[k + 4], 6, -145523070);
|
||||
p = g(p, m, n, o, b[k + 11], 10, -1120210379);
|
||||
o = g(o, p, m, n, b[k + 2], 15, 718787259);
|
||||
n = g(n, o, p, m, b[k + 9], 21, -343485551);
|
||||
m = a(m, c);
|
||||
n = a(n, h);
|
||||
o = a(o, i);
|
||||
p = a(p, j)
|
||||
}
|
||||
return [m, n, o, p]
|
||||
};
|
||||
var i = function (a) {
|
||||
var b = "0123456789abcdef",
|
||||
c = "",
|
||||
d, e = a.length * 4;
|
||||
for(d = 0; d < e; d++) {
|
||||
c += b.charAt(a[d >> 2] >> d % 4 * 8 + 4 & 15) + b.charAt(a[d >> 2] >> d % 4 * 8 & 15)
|
||||
}
|
||||
return c
|
||||
};
|
||||
var j = function (a) {
|
||||
var b = (a.length + 8 >> 6) + 1;
|
||||
var c = [],
|
||||
d, e = b * 16,
|
||||
f, g = a.length;
|
||||
for(d = 0; d < e; d++) {
|
||||
c.push(0)
|
||||
}
|
||||
for(f = 0; f < g; f++) {
|
||||
c[f >> 2] |= (a.charCodeAt(f) & 255) << f % 4 * 8
|
||||
}
|
||||
c[f >> 2] |= 128 << f % 4 * 8;
|
||||
c[b * 16 - 2] = g * 8;
|
||||
return c
|
||||
};
|
||||
return i(h(j(this)))
|
||||
}
|
||||
|
|
|
|||
4
addons/oembed/jquery.oembed.min.js
vendored
|
|
@ -98,7 +98,8 @@ function getScreen() {
|
|||
;
|
||||
|
||||
// 이미지 홀더
|
||||
imgframe = $("<img>")
|
||||
imgframe = $(new Image());
|
||||
imgframe
|
||||
.attr("id", "xe_gallery_holder")
|
||||
.css({
|
||||
border: '5px solid white',
|
||||
|
|
@ -111,6 +112,15 @@ function getScreen() {
|
|||
|
||||
body.append(xScreen).append(controls);
|
||||
|
||||
imgframe.live('load', function(){
|
||||
var clientWidth = $(window).width();
|
||||
var clientHeight = $(window).height();
|
||||
imgframe.css({
|
||||
left : clientWidth/2 - imgframe.width()/2 + "px",
|
||||
top : clientHeight/2 - imgframe.height()/2 + "px"
|
||||
});
|
||||
});
|
||||
|
||||
// xScreen 객체를 확장한다.
|
||||
xScreen.xeShow = function() {
|
||||
var clientWidth = $(window).width();
|
||||
|
|
@ -140,13 +150,18 @@ function getScreen() {
|
|||
this.index += val;
|
||||
prevbtn.css("visibility", (this.index>0)?"visible":"hidden");
|
||||
nextbtn.css("visibility", (this.index<this.list.size()-1)?"visible":"hidden");
|
||||
//textyle 이미지 리사이즈 처리
|
||||
var src = this.list.eq(this.index).attr("rawsrc");
|
||||
if(!src) src = this.list.eq(this.index).attr("src");
|
||||
imgframe.attr("src", src).css({
|
||||
left : clientWidth/2 - imgframe.width()/2 + "px",
|
||||
top : clientHeight/2 - imgframe.height()/2 + "px"
|
||||
});
|
||||
//textyle 이미지 리사이즈 처리
|
||||
var src = this.list.eq(this.index).attr("rawsrc");
|
||||
if(!src) src = this.list.eq(this.index).attr("src");
|
||||
|
||||
imgframe.attr("src", src).removeAttr('width').removeAttr('height');
|
||||
if(imgframe.width() > 0) {
|
||||
imgframe.css({
|
||||
left : clientWidth/2 - imgframe.width()/2 + "px",
|
||||
top : clientHeight/2 - imgframe.height()/2 + "px"
|
||||
});
|
||||
}
|
||||
|
||||
closebtn.css({
|
||||
left : clientWidth/2 - 32 + "px",
|
||||
top : "10px"
|
||||
|
|
|
|||
2
addons/resize_image/js/resize_image.min.js
vendored
|
|
@ -1 +1 @@
|
|||
!function(a){function b(){var b,c,e,f,g,h=a(document.body);return d?(b=a("#xe_gallery_controls"),c=a("#xe_gallery_holder"),e=a("#xe_gallery_closebtn"),f=a("#xe_gallery_prevbtn"),g=a("#xe_gallery_nextbtn")):(d=a("<div>").attr("id","xe_gallery_screen").css({position:"fixed",display:"none",backgroundColor:"black",zIndex:500,opacity:.7}),b=a("<div>").attr("id","xe_gallery_controls").css({position:"fixed",display:"none",overflow:"hidden",zIndex:510}),f=a('<button type="button" id="xe_gallery_prevbtn" />').css({left:"10px",backgroundPosition:"0 -64px"}).click(function(){d.xePrev()}).appendTo(b),e=a('<button type="button" id="xe_gallery_closebtn" />').css({top:"10px",backgroundPosition:"0 0"}).click(function(){d.xeHide()}).appendTo(b),g=a('<button type="button" id="xe_gallery_nextbtn" />').attr("id","xe_gallery_nextbtn").css({right:"10px",backgroundPosition:"0 -128px"}).click(function(){d.xeNext()}).appendTo(b),b.find(">button").css({position:"absolute",width:"64px",height:"64px",zIndex:530,cursor:"pointer",border:0,margin:0,padding:0,backgroundColor:"transparent",backgroundImage:"url("+request_uri+"addons/resize_image/btn.png)",backgroundRepeat:"no-repeat",opacity:".5",filter:"alpha(opacity=50)"}).mouseover(function(){a(this).css({opacity:"1",filter:"alpha(opacity=100)"})}).mouseout(function(){a(this).css({opacity:".5",filter:"alpha(opacity=50)"})}).focus(function(){a(this).trigger("mouseover")}).blur(function(){a(this).trigger("mouseout")}),c=a("<img>").attr("id","xe_gallery_holder").css({border:"5px solid white",zindex:520,maxWidth:"none",borderRadius:"5px",boxShadow:"0 0 10px #000"}).appendTo(b).draggable(),h.append(d).append(b),d.xeShow=function(){var b=(a(window).width(),a(window).height());a("#xe_gallery_controls,#xe_gallery_screen").show().css({top:0,right:0,bottom:0,left:0}),a("#xe_gallery_prevbtn,#xe_gallery_nextbtn").css("top",Math.round(b/2-32)+"px"),this.xeMove(0)},d.xeHide=function(){d.hide(),b.hide()},d.xePrev=function(){this.xeMove(-1)},d.xeNext=function(){this.xeMove(1)},d.xeMove=function(b){var d=a(window).width(),h=a(window).height();this.index+=b,f.css("visibility",this.index>0?"visible":"hidden"),g.css("visibility",this.index<this.list.size()-1?"visible":"hidden");var i=this.list.eq(this.index).attr("rawsrc");i||(i=this.list.eq(this.index).attr("src")),c.attr("src",i).css({left:d/2-c.width()/2+"px",top:h/2-c.height()/2+"px"}),e.css({left:d/2-32+"px",top:"10px"}).focus()},a(document).keydown(function(a){return 27==a.which?(d.xeHide(),!1):!0})),d}function c(){var c=a(this).closest(".xe_content"),d=c.find("img[rel=xe_gallery]"),e=a.inArray(a(this).get(0),d.get()),f=b();f.list=d,f.index=e,f.xeShow()}var d=null;a(window).load(function(){function b(a,c){if(c||(c=0),!(c>=10)){var d=this,e={width:d.width(),height:d.height()};if(!e.width||!e.height)return void setTimeout(function(){b.call(d,a,++c)},200);if(!(e.width<=a)){var f=a/e.width;d.removeAttr("width").removeAttr("height").css({width:a,height:parseInt(e.height*f,10)})}}}var d=/(?:(modules|addons|classes|common|layouts|libs|widgets|widgetstyles)\/)/i,e=/(?:common\/tpl\/images\/blank\.gif$)/i,f=a('<div style="height:1px;overflow:hidden;opacity:0;display:block;clear:both"></div>');a(".xe_content").each(function(){var g=f.appendTo(this).width();f.remove(),g&&(a("img",this).each(function(){var c=a(this),f=c.attr("src");(!d.test(f)||e.test(f))&&(c.attr("rel","xe_gallery"),b.call(c,g))}),a("img[rel=xe_gallery]",this).live("mouseover",function(){var b=a(this);b.parent("a").length||b.attr("onclick")||b.css("cursor","pointer").click(c)}))})})}(jQuery);
|
||||
!function(a){function b(){var b,c,e,f,g,h=a(document.body);return d?(b=a("#xe_gallery_controls"),c=a("#xe_gallery_holder"),e=a("#xe_gallery_closebtn"),f=a("#xe_gallery_prevbtn"),g=a("#xe_gallery_nextbtn")):(d=a("<div>").attr("id","xe_gallery_screen").css({position:"fixed",display:"none",backgroundColor:"black",zIndex:500,opacity:.7}),b=a("<div>").attr("id","xe_gallery_controls").css({position:"fixed",display:"none",overflow:"hidden",zIndex:510}),f=a('<button type="button" id="xe_gallery_prevbtn" />').css({left:"10px",backgroundPosition:"0 -64px"}).click(function(){d.xePrev()}).appendTo(b),e=a('<button type="button" id="xe_gallery_closebtn" />').css({top:"10px",backgroundPosition:"0 0"}).click(function(){d.xeHide()}).appendTo(b),g=a('<button type="button" id="xe_gallery_nextbtn" />').attr("id","xe_gallery_nextbtn").css({right:"10px",backgroundPosition:"0 -128px"}).click(function(){d.xeNext()}).appendTo(b),b.find(">button").css({position:"absolute",width:"64px",height:"64px",zIndex:530,cursor:"pointer",border:0,margin:0,padding:0,backgroundColor:"transparent",backgroundImage:"url("+request_uri+"addons/resize_image/btn.png)",backgroundRepeat:"no-repeat",opacity:".5",filter:"alpha(opacity=50)"}).mouseover(function(){a(this).css({opacity:"1",filter:"alpha(opacity=100)"})}).mouseout(function(){a(this).css({opacity:".5",filter:"alpha(opacity=50)"})}).focus(function(){a(this).trigger("mouseover")}).blur(function(){a(this).trigger("mouseout")}),c=a(new Image),c.attr("id","xe_gallery_holder").css({border:"5px solid white",zindex:520,maxWidth:"none",borderRadius:"5px",boxShadow:"0 0 10px #000"}).appendTo(b).draggable(),h.append(d).append(b),c.live("load",function(){var b=a(window).width(),d=a(window).height();c.css({left:b/2-c.width()/2+"px",top:d/2-c.height()/2+"px"})}),d.xeShow=function(){var b=(a(window).width(),a(window).height());a("#xe_gallery_controls,#xe_gallery_screen").show().css({top:0,right:0,bottom:0,left:0}),a("#xe_gallery_prevbtn,#xe_gallery_nextbtn").css("top",Math.round(b/2-32)+"px"),this.xeMove(0)},d.xeHide=function(){d.hide(),b.hide()},d.xePrev=function(){this.xeMove(-1)},d.xeNext=function(){this.xeMove(1)},d.xeMove=function(b){var d=a(window).width(),h=a(window).height();this.index+=b,f.css("visibility",this.index>0?"visible":"hidden"),g.css("visibility",this.index<this.list.size()-1?"visible":"hidden");var i=this.list.eq(this.index).attr("rawsrc");i||(i=this.list.eq(this.index).attr("src")),c.attr("src",i).removeAttr("width").removeAttr("height"),c.width()>0&&c.css({left:d/2-c.width()/2+"px",top:h/2-c.height()/2+"px"}),e.css({left:d/2-32+"px",top:"10px"}).focus()},a(document).keydown(function(a){return 27==a.which?(d.xeHide(),!1):!0})),d}function c(){var c=a(this).closest(".xe_content"),d=c.find("img[rel=xe_gallery]"),e=a.inArray(a(this).get(0),d.get()),f=b();f.list=d,f.index=e,f.xeShow()}var d=null;a(window).load(function(){function b(a,c){if(c||(c=0),!(c>=10)){var d=this,e={width:d.width(),height:d.height()};if(!e.width||!e.height)return void setTimeout(function(){b.call(d,a,++c)},200);if(!(e.width<=a)){var f=a/e.width;d.removeAttr("width").removeAttr("height").css({width:a,height:parseInt(e.height*f,10)})}}}var d=/(?:(modules|addons|classes|common|layouts|libs|widgets|widgetstyles)\/)/i,e=/(?:common\/tpl\/images\/blank\.gif$)/i,f=a('<div style="height:1px;overflow:hidden;opacity:0;display:block;clear:both"></div>');a(".xe_content").each(function(){var g=f.appendTo(this).width();f.remove(),g&&(a("img",this).each(function(){var c=a(this),f=c.attr("src");(!d.test(f)||e.test(f))&&(c.attr("rel","xe_gallery"),b.call(c,g))}),a("img[rel=xe_gallery]",this).live("mouseover",function(){var b=a(this);b.parent("a").length||b.attr("onclick")||b.css("cursor","pointer").click(c)}))})})}(jQuery);
|
||||
|
|
@ -2,14 +2,16 @@
|
|||
/* Copyright (C) NAVER <http://www.navercorp.com> */
|
||||
|
||||
if(!defined('__XE__'))
|
||||
{
|
||||
exit();
|
||||
}
|
||||
|
||||
/**
|
||||
* @file resize_image.addon.php
|
||||
* @author NAVER (developers@xpressengine.com)
|
||||
* @brief Add-on to resize images in the body
|
||||
*/
|
||||
if($called_position == 'after_module_proc' && (Context::getResponseMethod() == "HTML" || !isCrawler()))
|
||||
if($called_position == 'after_module_proc' && Context::getResponseMethod() == "HTML" && !isCrawler())
|
||||
{
|
||||
if(Mobile::isFromMobilePhone())
|
||||
{
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 39 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 3 KiB |
|
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 3.9 KiB |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 6 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 9 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 330 B After Width: | Height: | Size: 184 B |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 327 B After Width: | Height: | Size: 180 B |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 229 B After Width: | Height: | Size: 122 B |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 228 B After Width: | Height: | Size: 122 B |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 383 B After Width: | Height: | Size: 223 B |
|
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 713 B |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 815 B After Width: | Height: | Size: 598 B |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 69 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 20 KiB |