mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-29 15:22:15 +09:00
Merge branch 'develop' into pr/recaptcha
This commit is contained in:
commit
065d295011
47 changed files with 805 additions and 41 deletions
|
|
@ -30,6 +30,15 @@
|
|||
<title xml:lang="ko">사용 안 함</title>
|
||||
</options>
|
||||
</var>
|
||||
<var name="use_ncenter_widget" type="select">
|
||||
<title xml:lang="ko">알림센터 로그인 위젯 사용</title>
|
||||
<options value="Y">
|
||||
<title xml:lang="ko">사용함</title>
|
||||
</options>
|
||||
<options value="N">
|
||||
<title xml:lang="ko">사용 안 함</title>
|
||||
</options>
|
||||
</var>
|
||||
<var name="layout_type" type="select" default="auto">
|
||||
<title xml:lang="ko">레이아웃 타입</title>
|
||||
<options value="auto">
|
||||
|
|
|
|||
|
|
@ -440,6 +440,11 @@
|
|||
<a href="#" class="btn_top"><i class="xi-angle-up"><span class="blind">{$lang->cmd_move_up}</span></i></a>
|
||||
<!-- /TOP -->
|
||||
|
||||
<!-- Ncenter login widget -->
|
||||
<!--@if($layout_info->use_ncenter_widget == 'Y')-->
|
||||
<img class="zbxe_widget_output" widget="login_info" skin="ncenter_login" colorset="layout" widget_cache="0m" ncenter_use="yes" />
|
||||
<!--@end-->
|
||||
|
||||
<!-- Login widget -->
|
||||
<section cond="$layout_info->use_login_widget != 'N'" class="login_widget" style="display:none"|cond="$XE_VALIDATOR_ID != 'layouts/xedition/layout/1' || !$XE_VALIDATOR_MESSAGE">
|
||||
<load target="./css/widget.login.css" />
|
||||
|
|
|
|||
|
|
@ -482,6 +482,13 @@ class boardController extends board
|
|||
{
|
||||
// get the comment_srl
|
||||
$comment_srl = Context::get('comment_srl');
|
||||
|
||||
$instant_delete = null;
|
||||
if($this->grant->manager == true)
|
||||
{
|
||||
$instant_delete = Context::get('instant_delete');
|
||||
}
|
||||
|
||||
if(!$comment_srl)
|
||||
{
|
||||
return new Object(-1, 'msg_invalid_request');
|
||||
|
|
@ -510,13 +517,13 @@ class boardController extends board
|
|||
// generate comment controller object
|
||||
$oCommentController = getController('comment');
|
||||
|
||||
if($this->module_info->comment_delete_message === 'yes')
|
||||
if($this->module_info->comment_delete_message === 'yes' && $instant_delete != 'Y')
|
||||
{
|
||||
$comment->content = '';
|
||||
$comment->status = 7;
|
||||
$output = $oCommentController->updateCommentByDelete($comment, $this->grant->manager);
|
||||
}
|
||||
elseif($this->module_info->comment_delete_message === 'only_commnet')
|
||||
elseif($this->module_info->comment_delete_message === 'only_commnet' && $instant_delete != 'Y')
|
||||
{
|
||||
$childs = $oCommentModel->getChildComments($comment_srl);
|
||||
if(count($childs) > 0)
|
||||
|
|
|
|||
|
|
@ -47,3 +47,4 @@ $lang->about_comment_delete_message = 'When a comment is deleted, leave a placeh
|
|||
$lang->cmd_only_p_comment = 'Only if there are replies';
|
||||
$lang->cmd_all_comment_message = 'Always';
|
||||
$lang->cmd_do_not_message = 'Never';
|
||||
$lang->delete_placeholder = 'Delete Placeholder';
|
||||
|
|
|
|||
|
|
@ -76,3 +76,4 @@ $lang->about_comment_delete_message = '댓글 삭제시 완전히 지우지 않
|
|||
$lang->cmd_only_p_comment = '대댓글이 있는 경우에만 남김';
|
||||
$lang->cmd_all_comment_message = '모든 댓글에 남김';
|
||||
$lang->cmd_do_not_message = '남기지 않음';
|
||||
$lang->delete_placeholder = '완전 삭제';
|
||||
|
|
|
|||
|
|
@ -52,6 +52,9 @@
|
|||
<a cond="$comment->isGranted()||!$comment->get('member_srl')" href="{getUrl('act','dispBoardDeleteComment','comment_srl',$comment->comment_srl)}" class="delete"><i class="xi-trash"></i> {$lang->cmd_delete}</a>
|
||||
<a cond="$is_logged" class="comment_{$comment->comment_srl} this" href="#popup_menu_area" onclick="return false">{$lang->cmd_comment_do}</a>
|
||||
</p>
|
||||
<p class="action" cond="$comment->status >= 7">
|
||||
<a cond="$grant->manager" href="{getUrl('act','dispBoardDeleteComment','comment_srl',$comment->comment_srl)}" class="delete"><i class="xi-trash"></i> {$lang->delete_placeholder}</a>
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
<div cond="$oDocument->comment_page_navigation" class="pagination">
|
||||
|
|
|
|||
|
|
@ -11,10 +11,15 @@
|
|||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="document_srl" value="{$oComment->get('document_srl')}" />
|
||||
<input type="hidden" name="comment_srl" value="{$oComment->get('comment_srl')}" />
|
||||
|
||||
<h1>{sprintf($lang->comfirm_act_msg,$lang->comment,$lang->cmd_delete,$lang->msg_eul)}</h1>
|
||||
<div class="btnArea">
|
||||
<label for="instant_delete" cond="$grant->manager" style="line-height: 24px;">
|
||||
<input type="checkbox" id="instant_delete" name="instant_delete" value="Y" cond="$grant->manager" checked="checked"|cond="$oComment->status >= 7" style="vertical-align: middle;" />
|
||||
{$lang->delete_placeholder}
|
||||
</label>
|
||||
<input type="submit" class="btn" value="{$lang->cmd_delete}" />
|
||||
<button type="button" class="btn" onclick="history.back()">{$lang->cmd_cancel}</button>
|
||||
</div>
|
||||
</form>
|
||||
<include target="_footer.html" />
|
||||
<include target="_footer.html" />
|
||||
|
|
|
|||
|
|
@ -15,4 +15,4 @@
|
|||
<button type="button" class="btn" onclick="history.back()">{$lang->cmd_cancel}</button>
|
||||
</div>
|
||||
</form>
|
||||
<include target="_footer.html" />
|
||||
<include target="_footer.html" />
|
||||
|
|
|
|||
|
|
@ -275,6 +275,7 @@ class commentModel extends comment
|
|||
*/
|
||||
function getCommentCountByDate($date = '', $moduleSrlList = array())
|
||||
{
|
||||
$args = new stdClass();
|
||||
if($date)
|
||||
{
|
||||
$args->regDate = date('Ymd', strtotime($date));
|
||||
|
|
|
|||
|
|
@ -176,6 +176,7 @@ class counterController extends counter
|
|||
$args->site_srl = $site_srl;
|
||||
$query_id = 'counter.insertSiteTodayStatus';
|
||||
|
||||
$u_args = new stdClass();
|
||||
$u_args->site_srl = $site_srl; // /< when inserting a daily row, attempt to inser total rows(where regdate=0) together
|
||||
executeQuery($query_id, $u_args);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -139,6 +139,7 @@ class counterModel extends counter
|
|||
$max = 0;
|
||||
$sum = 0;
|
||||
|
||||
$status = new stdClass();
|
||||
switch($type)
|
||||
{
|
||||
case 'year' :
|
||||
|
|
|
|||
|
|
@ -495,6 +495,7 @@ class documentAdminController extends document
|
|||
|
||||
if($document_srl)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->document_srl = $document_srl;
|
||||
$output = executeQuery('document.deleteDeclaredDocuments', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
|
@ -578,7 +579,7 @@ class documentAdminController extends document
|
|||
|
||||
$this->setMessage('success_registed');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispDocumentAdminAlias', 'document_srl', $args->document_srl);
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispDocumentAdminAlias');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
|
|
@ -705,6 +706,7 @@ class documentAdminController extends document
|
|||
{
|
||||
$document_srl = Context::get('document_srl');
|
||||
$alias_srl = Context::get('target_srl');
|
||||
$args = new stdClass();
|
||||
$args->alias_srl = $alias_srl;
|
||||
$output = executeQuery("document.deleteAlias", $args);
|
||||
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ class documentAdminModel extends document
|
|||
unset($obj->mid);
|
||||
}
|
||||
// check if the module_srl is an array
|
||||
$args = new stdClass();
|
||||
if(is_array($obj->module_srl)) $args->module_srl = implode(',', $obj->module_srl);
|
||||
else $args->module_srl = $obj->module_srl;
|
||||
// Variable check
|
||||
|
|
@ -81,6 +82,7 @@ class documentAdminModel extends document
|
|||
*/
|
||||
function getDocumentTrash($trash_srl)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->trash_srl = $trash_srl;
|
||||
$output = executeQuery('document.getTrash', $args);
|
||||
|
||||
|
|
|
|||
|
|
@ -237,6 +237,7 @@ class documentAdminView extends document
|
|||
*/
|
||||
function dispDocumentAdminAlias()
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->document_srl = Context::get('document_srl');
|
||||
if(!$args->document_srl) return $this->dispDocumentAdminList();
|
||||
|
||||
|
|
@ -268,6 +269,7 @@ class documentAdminView extends document
|
|||
function dispDocumentAdminTrashList()
|
||||
{
|
||||
// options for a list
|
||||
$args = new stdClass();
|
||||
$args->page = Context::get('page'); // /< Page
|
||||
$args->list_count = 30; // /< the number of posts to display on a single page
|
||||
$args->page_count = 10; // /< the number of pages that appear in the page navigation
|
||||
|
|
|
|||
|
|
@ -211,6 +211,7 @@ class document extends ModuleObject
|
|||
if(!$oDB->isColumnExists("documents","lang_code"))
|
||||
{
|
||||
$oDB->addColumn('documents',"lang_code","varchar",10, config('locale.default_lang'));
|
||||
$obj = new stdClass();
|
||||
$obj->lang_code = config('locale.default_lang');
|
||||
executeQuery('document.updateDocumentsLangCode', $obj);
|
||||
}
|
||||
|
|
@ -234,6 +235,7 @@ class document extends ModuleObject
|
|||
$output = executeQuery('document.getGroupsExtraKeys', $obj);
|
||||
if($output->toBool() && $output->data && count($output->data)) {
|
||||
foreach($output->data as $extra_keys) {
|
||||
$args = new stdClass();
|
||||
$args->module_srl = $extra_keys->module_srl;
|
||||
$args->var_idx = $extra_keys->idx;
|
||||
$args->new_eid = "extra_vars".$extra_keys->idx;
|
||||
|
|
@ -245,12 +247,14 @@ class document extends ModuleObject
|
|||
if(!$oDB->isColumnExists("document_extra_vars","eid"))
|
||||
{
|
||||
$oDB->addColumn("document_extra_vars","eid","varchar",40);
|
||||
$obj = new stdClass();
|
||||
$obj->var_idx = '-1,-2';
|
||||
$output = executeQuery('document.getGroupsExtraVars', $obj);
|
||||
if($output->toBool() && $output->data && count($output->data))
|
||||
{
|
||||
foreach($output->data as $extra_vars)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->module_srl = $extra_vars->module_srl;
|
||||
$args->var_idx = $extra_vars->idx;
|
||||
$args->new_eid = "extra_vars".$extra_vars->idx;
|
||||
|
|
@ -272,6 +276,7 @@ class document extends ModuleObject
|
|||
if(!$oDB->isColumnExists('documents', 'status'))
|
||||
{
|
||||
$oDB->addColumn('documents', 'status', 'varchar', 20, 'PUBLIC');
|
||||
$args = new stdClass();
|
||||
$args->is_secret = 'Y';
|
||||
$output = executeQuery('document.updateDocumentStatus', $args);
|
||||
}
|
||||
|
|
@ -284,7 +289,7 @@ class document extends ModuleObject
|
|||
if($oDB->isColumnExists('documents', 'allow_comment') || $oDB->isColumnExists('documents', 'lock_comment'))
|
||||
{
|
||||
$oDB->addColumn('documents', 'comment_status', 'varchar', 20, 'ALLOW');
|
||||
|
||||
$args = new stdClass();
|
||||
$args->commentStatus = 'DENY';
|
||||
|
||||
// allow_comment='Y', lock_comment='Y'
|
||||
|
|
|
|||
|
|
@ -2522,6 +2522,7 @@ class documentController extends document
|
|||
}
|
||||
else if($type == 'cancelDeclare')
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->document_srl = $document_srl_list;
|
||||
$output = executeQuery('document.deleteDeclaredDocuments', $args);
|
||||
$msg_code = 'success_declare_canceled';
|
||||
|
|
|
|||
|
|
@ -582,6 +582,7 @@ class documentModel extends document
|
|||
function getDocumentExtraVarsCount($module_srl, $search_obj = NULL)
|
||||
{
|
||||
// Additional search options
|
||||
$args = new stdClass();
|
||||
$args->module_srl = $module_srl;
|
||||
|
||||
$args->category_srl = $search_obj->category_srl;
|
||||
|
|
|
|||
|
|
@ -388,6 +388,7 @@ class editorController extends editor
|
|||
*/
|
||||
function removeEditorConfig($site_srl)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->site_srl = $site_srl;
|
||||
executeQuery('editor.deleteSiteComponent', $args);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -132,10 +132,17 @@ class fileAdminModel extends file
|
|||
*/
|
||||
function getFilesCountByDate($date = '')
|
||||
{
|
||||
if($date) $args->regDate = date('Ymd', strtotime($date));
|
||||
$args = new stdClass();
|
||||
if($date)
|
||||
{
|
||||
$args->regDate = date('Ymd', strtotime($date));
|
||||
}
|
||||
|
||||
$output = executeQuery('file.getFilesCount', $args);
|
||||
if(!$output->toBool()) return 0;
|
||||
if(!$output->toBool())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return $output->data->count;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -122,6 +122,7 @@ class importerAdminController extends importer
|
|||
$total_count = 0;
|
||||
foreach ($output->data as $val)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->user_id = $val->user_id;
|
||||
$args->member_srl = $val->member_srl;
|
||||
$tmp = executeQuery ('importer.updateDocumentSyncForCUBRID'.$postFix, $args);
|
||||
|
|
@ -145,6 +146,7 @@ class importerAdminController extends importer
|
|||
$total_count = 0;
|
||||
foreach ($output->data as $val)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->user_id = $val->user_id;
|
||||
$args->member_srl = $val->member_srl;
|
||||
$tmp = executeQuery ('importer.updateCommentSyncForCUBRID'.$postFix, $args);
|
||||
|
|
@ -516,7 +518,7 @@ class importerAdminController extends importer
|
|||
FileHandler::removeFile($target_file);
|
||||
if(!$xmlObj) continue;
|
||||
// List objects
|
||||
$obj = null;
|
||||
$obj = new stdClass();
|
||||
$obj->receiver = base64_decode($xmlObj->message->receiver->body);
|
||||
$obj->sender = base64_decode($xmlObj->message->sender->body);
|
||||
$obj->title = base64_decode($xmlObj->message->title->body);
|
||||
|
|
@ -526,25 +528,26 @@ class importerAdminController extends importer
|
|||
$obj->readed_date = base64_decode($xmlObj->message->readed_date->body);
|
||||
// Get member_srl of sender/recipient (If not exists, pass)
|
||||
if(!$obj->sender) continue;
|
||||
$sender_args = new stdClass();
|
||||
$sender_args->user_id = $obj->sender;
|
||||
$sender_output = executeQuery('member.getMemberInfo',$sender_args);
|
||||
$sender_srl = $sender_output->data->member_srl;
|
||||
if(!$sender_srl)
|
||||
{
|
||||
unset($sender_args);
|
||||
$sender_args = new stdClass();
|
||||
$sender_args->email_address = $obj->sender;
|
||||
$sender_output = executeQuery('member.getMemberInfoByEmailAddress',$sender_args);
|
||||
$sender_srl = $sender_output->data->member_srl;
|
||||
}
|
||||
if(!$sender_srl) continue;
|
||||
|
||||
$receiver_args = new stdClass();
|
||||
$receiver_args->user_id = $obj->receiver;
|
||||
if(!$obj->receiver) continue;
|
||||
$receiver_output = executeQuery('member.getMemberInfo',$receiver_args);
|
||||
$receiver_srl = $receiver_output->data->member_srl;
|
||||
if(!$receiver_srl)
|
||||
{
|
||||
unset($receiver_args);
|
||||
$receiver_args = new stdClass();
|
||||
$receiver_args->email_address = $obj->receiver;
|
||||
$receiver_output = executeQuery('member.getMemberInfoByEmailAddress',$receiver_args);
|
||||
$receiver_srl = $receiver_output->data->member_srl;
|
||||
|
|
@ -645,6 +648,7 @@ class importerAdminController extends importer
|
|||
$category_list = $oDocumentModel->getCategoryList($module_srl);
|
||||
if(count($category_list)) foreach($category_list as $key => $val) $category_titles[$val->title] = $val->category_srl;
|
||||
|
||||
$ek_args = new stdClass();
|
||||
$ek_args->module_srl = $module_srl;
|
||||
$output = executeQueryArray('document.getDocumentExtraKeys', $ek_args);
|
||||
if($output->data)
|
||||
|
|
@ -783,7 +787,7 @@ class importerAdminController extends importer
|
|||
foreach($extra_vars as $key => $val)
|
||||
{
|
||||
if(!$val->value) continue;
|
||||
unset($e_args);
|
||||
$e_args = new stdClass;
|
||||
$e_args->module_srl = $module_srl;
|
||||
$e_args->document_srl = $obj->document_srl;
|
||||
$e_args->var_idx = $val->var_idx;
|
||||
|
|
@ -793,7 +797,7 @@ class importerAdminController extends importer
|
|||
// Create a key for extra vars if not exists (except vars for title and content)
|
||||
if(!preg_match('/^(title|content)_(.+)$/i',$e_args->eid) && !$extra_keys[$e_args->eid])
|
||||
{
|
||||
unset($ek_args);
|
||||
$ek_args = new stdClass();
|
||||
$ek_args->module_srl = $module_srl;
|
||||
$ek_args->var_idx = $val->var_idx;
|
||||
$ek_args->var_name = $val->eid;
|
||||
|
|
@ -962,6 +966,7 @@ class importerAdminController extends importer
|
|||
else
|
||||
{
|
||||
// Get parent comment infomation
|
||||
$parent_args = new stdClass();
|
||||
$parent_args->comment_srl = $obj->parent_srl;
|
||||
$parent_output = executeQuery('comment.getCommentListItem', $parent_args);
|
||||
// Return if parent comment doesn't exist
|
||||
|
|
|
|||
|
|
@ -240,6 +240,7 @@ class ttimport
|
|||
|
||||
if($module_name == 'textyle')
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->document_srl = $obj->document_srl;
|
||||
$args->module_srl = $obj->module_srl;
|
||||
$args->logs = serialize(null);
|
||||
|
|
@ -674,6 +675,7 @@ class ttimport
|
|||
else
|
||||
{
|
||||
// Get parent_srl
|
||||
$parent_args = new stdClass();
|
||||
$parent_args->comment_srl = $tobj->parent_srl;
|
||||
$parent_output = executeQuery('comment.getCommentListItem', $parent_args);
|
||||
// Return if parent comment doesn't exist
|
||||
|
|
|
|||
|
|
@ -27,6 +27,7 @@ class layoutAdminController extends layout
|
|||
|
||||
// Get information to create a layout
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
$args = new stdClass();
|
||||
$args->site_srl = (int)$site_module_info->site_srl;
|
||||
$args->layout_srl = getNextSequence();
|
||||
$args->layout = Context::get('layout');
|
||||
|
|
@ -981,7 +982,7 @@ class layoutAdminController extends layout
|
|||
}
|
||||
|
||||
unset($newLayoutInfo->{$name});
|
||||
|
||||
$args = new stdClass();
|
||||
$args->layout_srl = $layoutSrl;
|
||||
$args->extra_vars = serialize($newLayoutInfo);
|
||||
$output = $this->updateLayout($args);
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@ class layout extends ModuleObject
|
|||
$oDB->addColumn('layouts','layout_type','char',1,'P',true);
|
||||
}
|
||||
|
||||
$args = new stdClass();
|
||||
$args->layout = '.';
|
||||
$output = executeQueryArray('layout.getLayoutDotList', $args);
|
||||
if($output->data && count($output->data) > 0)
|
||||
|
|
|
|||
|
|
@ -157,6 +157,7 @@ class memberAdminModel extends member
|
|||
*/
|
||||
function getSiteMemberList($site_srl, $page = 1)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->site_srl = $site_srl;
|
||||
$args->page = $page;
|
||||
$args->list_count = 40;
|
||||
|
|
@ -240,10 +241,17 @@ class memberAdminModel extends member
|
|||
*/
|
||||
function getMemberGroupMemberCountByDate($date = '')
|
||||
{
|
||||
if($date) $args->regDate = date('Ymd', strtotime($date));
|
||||
$args = new stdClass();
|
||||
if($date)
|
||||
{
|
||||
$args->regDate = date('Ymd', strtotime($date));
|
||||
}
|
||||
|
||||
$output = executeQuery('member.getMemberGroupMemberCountByDate', $args);
|
||||
if(!$output->toBool()) return 0;
|
||||
if(!$output->toBool())
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
return count($output->data);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -305,6 +305,7 @@ class member extends ModuleObject {
|
|||
{
|
||||
$oDB->addColumn("member", "list_order", "number", 11);
|
||||
@set_time_limit(0);
|
||||
$args = new stdClass();
|
||||
$args->list_order = 'member_srl';
|
||||
executeQuery('member.updateMemberListOrderAll',$args);
|
||||
executeQuery('member.updateMemberListOrderAll');
|
||||
|
|
|
|||
|
|
@ -770,6 +770,7 @@ class memberModel extends member
|
|||
*/
|
||||
function getJoinForm($member_join_form_srl)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->member_join_form_srl = $member_join_form_srl;
|
||||
$output = executeQuery('member.getJoinForm', $args);
|
||||
$join_form = $output->data;
|
||||
|
|
@ -797,6 +798,7 @@ class memberModel extends member
|
|||
{
|
||||
if(!$this->denied_id_list)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->sort_index = "list_order";
|
||||
$args->page = Context::get('page');
|
||||
$args->list_count = 40;
|
||||
|
|
|
|||
|
|
@ -190,6 +190,7 @@ class menuAdminController extends menu
|
|||
else
|
||||
{
|
||||
// create menu item.
|
||||
$item_args = new stdClass();
|
||||
$item_args->menu_srl = $menuSrl;
|
||||
$item_args->url = $moduleInfo->mid;
|
||||
$item_args->name = $moduleInfo->mid;
|
||||
|
|
@ -1466,6 +1467,7 @@ class menuAdminController extends menu
|
|||
}
|
||||
elseif($mode == 'insert')
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->menu_item_srl = $target_srl;
|
||||
$args->parent_srl = $parent_srl;
|
||||
$args->listorder = -1*getNextSequence();
|
||||
|
|
@ -2087,6 +2089,7 @@ class menuAdminController extends menu
|
|||
{
|
||||
if(!count($menu_srl_list)) return;
|
||||
// Delete the value of menu_srls
|
||||
$args = new stdClass();
|
||||
$args->menu_srls = implode(',',$menu_srl_list);
|
||||
$output = executeQuery('menu.deleteMenuLayout', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class menu extends ModuleObject
|
|||
{
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
|
||||
$oMenuAdminModel = getAdminModel('menu');
|
||||
$args = new stdClass();
|
||||
|
|
@ -95,7 +95,7 @@ class menu extends ModuleObject
|
|||
$menuItemAllList = array();
|
||||
foreach($output AS $key=>$value)
|
||||
{
|
||||
unset($args);
|
||||
$args = new stdClass();
|
||||
$args->menu_srl = $value->menu_srl;
|
||||
$output2 = executeQueryArray('menu.getMenuItems', $args);
|
||||
if(is_array($output2->data))
|
||||
|
|
@ -123,7 +123,7 @@ class menu extends ModuleObject
|
|||
$shortcutItemList = array_diff_assoc($menuItemAllList, $menuItemUniqueList);
|
||||
foreach($output AS $key=>$value)
|
||||
{
|
||||
unset($args);
|
||||
$args = new stdClass();
|
||||
$args->menu_srl = $value->menu_srl;
|
||||
$output2 = executeQueryArray('menu.getMenuItems', $args);
|
||||
if(is_array($output2->data))
|
||||
|
|
|
|||
|
|
@ -261,7 +261,7 @@ class module extends ModuleObject
|
|||
$per_page = 100;
|
||||
$total_pages = (int) (($total_count - 1) / $per_page) + 1;
|
||||
// Get extra vars if exist
|
||||
$doc_args = null;
|
||||
$doc_args = new stdClass();
|
||||
$doc_args->module_srl = $module_srl;
|
||||
$doc_args->list_count = $per_page;
|
||||
$doc_args->sort_index = 'list_order';
|
||||
|
|
@ -326,6 +326,7 @@ class module extends ModuleObject
|
|||
$domain = Context::getDefaultUrl();
|
||||
$url_info = parse_url($domain);
|
||||
$domain = $url_info['host'].( (!empty($url_info['port'])&&$url_info['port']!=80)?':'.$url_info['port']:'').$url_info['path'];
|
||||
$site_args = new stdClass();
|
||||
$site_args->site_srl = 0;
|
||||
$site_args->index_module_srl = $mid_output->data->module_srl;
|
||||
$site_args->domain = $domain;
|
||||
|
|
@ -382,7 +383,7 @@ class module extends ModuleObject
|
|||
if(count($skin_path) != 2) continue;
|
||||
if(is_dir(sprintf(_XE_PATH_ . 'themes/%s/modules/%s', $skin_path[0], $skin_path[1])))
|
||||
{
|
||||
unset($args);
|
||||
$args = new stdClass();
|
||||
$args->skin = $item->skin;
|
||||
$args->new_skin = implode('|@|', $skin_path);
|
||||
$output = executeQuery('module.updateSkinAll', $args);
|
||||
|
|
|
|||
|
|
@ -64,8 +64,10 @@ $lang->ncenterlite_io_about = 'You can activate or inactivate every function of
|
|||
$lang->ncenterlite_on = 'Active';
|
||||
$lang->ncenterlite_off = 'Inactive';
|
||||
$lang->ncenterlite_display = 'Display Notifications';
|
||||
$lang->ncenterlite_display_y = 'Yes';
|
||||
$lang->ncenterlite_display_n = 'No';
|
||||
$lang->ncenterlite_display_all = 'All display';
|
||||
$lang->ncenterlite_display_pc = 'Only PC';
|
||||
$lang->ncenterlite_display_mobile = 'Only Mobile';
|
||||
$lang->ncenterlite_display_none = 'Not display.';
|
||||
$lang->ncenterlite_display_about = 'You can hide notifications from Notification Center Lite if you are using a layout or widget that handles notifications for you.';
|
||||
$lang->ncenterlite_mention_target = 'Mention target';
|
||||
$lang->ncenterlite_mention_target_about = 'Mention target can be nicknames or IDs (@Nickname or @ID).';
|
||||
|
|
|
|||
|
|
@ -74,8 +74,10 @@ $lang->ncenterlite_on = '동작';
|
|||
$lang->ncenterlite_only_message = '쪽지만';
|
||||
$lang->ncenterlite_off = '동작 안 함';
|
||||
$lang->ncenterlite_display = '알림 표시 여부';
|
||||
$lang->ncenterlite_display_y = '표시';
|
||||
$lang->ncenterlite_display_n = '표시하지 않음';
|
||||
$lang->ncenterlite_display_all = '모두 사용';
|
||||
$lang->ncenterlite_display_pc = 'PC만 표시';
|
||||
$lang->ncenterlite_display_mobile = '모바일만 표시';
|
||||
$lang->ncenterlite_display_none = '표시하지 않음';
|
||||
$lang->ncenterlite_display_about = '사용하는 레이아웃이나 위젯에 알림을 표시하는 기능이 있는 경우 중복을 막기 위해 알림센터의 알림을 숨길 수 있습니다.';
|
||||
$lang->ncenterlite_mention_target = '멘션 타겟';
|
||||
$lang->ncenterlite_mention_target_about = '멘션 알림을 @아이디 소유자에게 보낼지 @닉네임 소유자에게 보낼지 선택할 수 있습니다.';
|
||||
|
|
|
|||
|
|
@ -142,7 +142,6 @@ class ncenterliteAdminController extends ncenterlite
|
|||
$output = executeQuery('ncenterlite.deleteNotifyAll', $args);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -705,7 +705,7 @@ class ncenterliteController extends ncenterlite
|
|||
return new Object();
|
||||
}
|
||||
|
||||
if($config->display_use == 'N')
|
||||
if($config->display_use == 'mobile' && !Mobile::isFromMobilePhone() || $config->display_use == 'pc' && Mobile::isFromMobilePhone() || $config->display_use == 'none')
|
||||
{
|
||||
return new Object();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ class ncenterliteModel extends ncenterlite
|
|||
{
|
||||
$config->use = array('message' => 1);
|
||||
}
|
||||
if(!$config->display_use) $config->display_use = 'Y';
|
||||
if(!$config->display_use) $config->display_use = 'all';
|
||||
|
||||
if(!$config->mention_names) $config->mention_names = 'nick_name';
|
||||
if(!$config->mention_suffixes)
|
||||
|
|
|
|||
|
|
@ -21,14 +21,14 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->ncenterlite_display}</label>
|
||||
<label class="x_control-label" for="display_use">{$lang->ncenterlite_display}</label>
|
||||
<div class="x_controls">
|
||||
<label class="x_inline">
|
||||
<input type="radio" id="display_use_y" name="display_use" value="Y" checked="checked"|cond="$config->display_use == 'Y'" /> {$lang->ncenterlite_display_y}
|
||||
</label>
|
||||
<label class="x_inline">
|
||||
<input type="radio" id="display_use_n" name="display_use" value="N" checked="checked"|cond="$config->display_use == 'N'" /> {$lang->ncenterlite_display_n}
|
||||
</label>
|
||||
<select name="display_use" id="display_use">
|
||||
<option value="all" selected="selected"|cond="$config->display_use == 'all'">{$lang->ncenterlite_display_all}</option>
|
||||
<option value="none" selected="selected"|cond="$config->display_use == 'none'">{$lang->ncenterlite_display_none}</option>
|
||||
<option value="pc" selected="selected"|cond="$config->display_use == 'pc'">{$lang->ncenterlite_display_pc}</option>
|
||||
<option value="mobile" selected="selected"|cond="$config->display_use == 'mobile'">{$lang->ncenterlite_display_mobile}</option>
|
||||
</select>
|
||||
<p class="x_help-block">{$lang->ncenterlite_display_about}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -418,6 +418,7 @@ class pointController extends point
|
|||
// Pass if there are no requested points
|
||||
if(!$point) return new Object();
|
||||
// In case of a registered member, if it is read but cannot just pass, then get the current points
|
||||
$args = new stdClass();
|
||||
if($member_srl)
|
||||
{
|
||||
$args->member_srl = $member_srl;
|
||||
|
|
|
|||
|
|
@ -93,6 +93,7 @@ class sessionModel extends session
|
|||
|
||||
if(!count($member_srls)) return $output;
|
||||
|
||||
$member_args = new stdClass();
|
||||
$member_args->member_srl = implode(',',$member_srls);
|
||||
$member_output = executeQueryArray('member.getMembers', $member_args);
|
||||
if($member_output->data)
|
||||
|
|
|
|||
|
|
@ -85,6 +85,7 @@ class spamfilterModel extends spamfilter
|
|||
$word = $word_list[$i]->word;
|
||||
if(preg_match('/'.preg_quote($word,'/').'/is', $text))
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->word = $word;
|
||||
$output = executeQuery('spamfilter.updateDeniedWordHit', $args);
|
||||
return new Object(-1,sprintf(lang('msg_alert_denied_word'), $word));
|
||||
|
|
@ -154,6 +155,7 @@ class spamfilterModel extends spamfilter
|
|||
{
|
||||
if(!$ipaddress) $ipaddress = $_SERVER['REMOTE_ADDR'];
|
||||
|
||||
$args = new stdClass();
|
||||
$args->ipaddress = $ipaddress;
|
||||
$args->regdate = date("YmdHis", $_SERVER['REQUEST_TIME']-$time);
|
||||
$output = executeQuery('spamfilter.getLogCount', $args);
|
||||
|
|
|
|||
|
|
@ -31,4 +31,20 @@
|
|||
<name xml:lang="zh-TW">NAVER</name>
|
||||
<name xml:lang="tr">NAVER</name>
|
||||
</author>
|
||||
<extra_vars>
|
||||
<var id="ncenter_use" type="select">
|
||||
<name xml:lang="ko">알림센터 사용</name>
|
||||
<name xml:lang="en">Use the ncenterlite</name>
|
||||
<options>
|
||||
<value>yes</value>
|
||||
<name xml:lang="ko">사용함</name>
|
||||
<name xml:lang="en">Enabled</name>
|
||||
</options>
|
||||
<options>
|
||||
<value>no</value>
|
||||
<name xml:lang="ko">사용 안 함</name>
|
||||
<name xml:lang="en">Disabled</name>
|
||||
</options>
|
||||
</var>
|
||||
</extra_vars>
|
||||
</widget>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
<?php
|
||||
/* Copyright (C) NAVER <http://www.navercorp.com> */
|
||||
|
||||
/**
|
||||
* @class login_info
|
||||
* @author NAVER (developers@xpressengine.com)
|
||||
|
|
@ -20,12 +21,50 @@ class login_info extends WidgetHandler
|
|||
// Set a path of the template skin (values of skin, colorset settings)
|
||||
$tpl_path = sprintf('%sskins/%s', $this->widget_path, $args->skin);
|
||||
Context::set('colorset', $args->colorset);
|
||||
// Specify a template file
|
||||
if(Context::get('is_logged')) $tpl_file = 'login_info';
|
||||
else $tpl_file = 'login_form';
|
||||
|
||||
$is_logged = Context::get('is_logged');
|
||||
$oMemberModel = getModel('member');
|
||||
$memberConfig = $oMemberModel->getMemberConfig();
|
||||
|
||||
$oNcenterliteModel = getModel('ncenterlite');
|
||||
$ncenter_config = $oNcenterliteModel->getConfig();
|
||||
if($is_logged)
|
||||
{
|
||||
if(!empty($ncenter_config->use) && $args->ncenter_use == 'yes')
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
$ncenter_list = $oNcenterliteModel->getMyNotifyList($logged_info->member_srl);
|
||||
$_latest_notify_id = array_slice($ncenter_list->data, 0, 1);
|
||||
$_latest_notify_id = $_latest_notify_id[0]->notify;
|
||||
if($memberConfig->profile_image == 'Y')
|
||||
{
|
||||
$profileImage = $oMemberModel->getProfileImage($logged_info->member_srl);
|
||||
Context::set('profileImage', $profileImage);
|
||||
}
|
||||
Context::set('ncenterlite_latest_notify_id', $_latest_notify_id);
|
||||
if($_COOKIE['_ncenterlite_hide_id'] && $_COOKIE['_ncenterlite_hide_id'] == $_latest_notify_id)
|
||||
{
|
||||
return;
|
||||
}
|
||||
setcookie('_ncenterlite_hide_id', '', 0, '/');
|
||||
}
|
||||
$tpl_file = 'login_info';
|
||||
}
|
||||
else
|
||||
{
|
||||
$tpl_file = 'login_form';
|
||||
}
|
||||
// Get the member configuration
|
||||
$oModuleModel = getModel('module');
|
||||
$this->member_config = $oModuleModel->getModuleConfig('member');
|
||||
if($ncenter_config->zindex)
|
||||
{
|
||||
Context::set('ncenterlite_zindex', ' style="z-index:' . $ncenter_config->zindex . ';" ');
|
||||
}
|
||||
Context::set('useProfileImage', ($memberConfig->profile_image == 'Y') ? true : false);
|
||||
Context::set('ncenterlite_list', $ncenter_list->data);
|
||||
Context::set('ncenterlite_page_navigation', $ncenter_list->page_navigation);
|
||||
Context::set('_ncenterlite_num', $ncenter_list->page_navigation->total_count);
|
||||
Context::set('member_config', $this->member_config);
|
||||
|
||||
// Set a flag to check if the https connection is made when using SSL and create https url
|
||||
|
|
@ -33,9 +72,12 @@ class login_info extends WidgetHandler
|
|||
$useSsl = Context::getSslStatus();
|
||||
if($useSsl != 'none')
|
||||
{
|
||||
if(strncasecmp('https://', Context::getRequestUri(), 8) === 0) $ssl_mode = true;
|
||||
if(strncasecmp('https://', Context::getRequestUri(), 8) === 0)
|
||||
{
|
||||
$ssl_mode = true;
|
||||
}
|
||||
}
|
||||
Context::set('ssl_mode',$ssl_mode);
|
||||
Context::set('ssl_mode', $ssl_mode);
|
||||
|
||||
// Compile a template
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
|
|
|
|||
377
widgets/login_info/skins/ncenter_login/css/ncenter.css
Normal file
377
widgets/login_info/skins/ncenter_login/css/ncenter.css
Normal file
|
|
@ -0,0 +1,377 @@
|
|||
#nc_container {
|
||||
z-index:99;
|
||||
position:fixed;
|
||||
bottom:0;
|
||||
right:0;
|
||||
margin:0;
|
||||
padding:0;
|
||||
width:330px;
|
||||
height:58px;
|
||||
border-bottom:1px solid;
|
||||
font-size:12px;
|
||||
line-height:20px;
|
||||
}
|
||||
|
||||
#nc_container.nc_login {
|
||||
height:28px;
|
||||
}
|
||||
|
||||
#nc_container a {
|
||||
padding:0;
|
||||
font-size:12px;
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
#nc_container ul.me_menu {
|
||||
display:block;
|
||||
margin:0;
|
||||
list-style:none;
|
||||
line-height:28px;
|
||||
}
|
||||
|
||||
#nc_container ul.nc_memu {
|
||||
display:block;
|
||||
margin:0;
|
||||
padding:4px;
|
||||
list-style:none;
|
||||
line-height:20px;
|
||||
}
|
||||
#nc_container ul.nc_memu {
|
||||
border-bottom:1px solid #0c0c0c;
|
||||
}
|
||||
#nc_container ul.nc_memu.guest {
|
||||
border-bottom: 0;
|
||||
}
|
||||
#nc_container ul.me_menu {
|
||||
border-top:1px solid #505050;
|
||||
}
|
||||
|
||||
#nc_container ul.me_menu img {
|
||||
vertical-align:middle;
|
||||
margin-left:5px;
|
||||
}
|
||||
|
||||
#nc_container ul.me_menu li {
|
||||
float:left;
|
||||
height:28px;
|
||||
padding:0 5px;
|
||||
border-right:1px solid #0c0c0c;
|
||||
border-left:1px solid #505050;
|
||||
}
|
||||
|
||||
#nc_container ul.me_menu li:first-child{
|
||||
border-left:0;
|
||||
}
|
||||
|
||||
#nc_container ul.me_menu li:last-child{
|
||||
border-right:0;
|
||||
}
|
||||
|
||||
#nc_container ul:after {
|
||||
content:"";
|
||||
display:block;
|
||||
clear:both;
|
||||
}
|
||||
#nc_container ul.me_menu li {
|
||||
display:inline-block;
|
||||
height:28px;
|
||||
width:auto;
|
||||
background:transparent!important;
|
||||
}
|
||||
#nc_container ul.nc_memu li{
|
||||
display:inline-block;
|
||||
padding:0 5px;
|
||||
height:20px;
|
||||
width:auto;
|
||||
background:transparent!important;
|
||||
}
|
||||
|
||||
#nc_container ul li.fLeft {
|
||||
float:left;
|
||||
}
|
||||
|
||||
#nc_container ul li.fRight {
|
||||
float:right;
|
||||
}
|
||||
|
||||
#nc_container ul li a.notify {
|
||||
display:block;
|
||||
float:left;
|
||||
}
|
||||
|
||||
#nc_container a.close {
|
||||
display:block;
|
||||
}
|
||||
|
||||
#nc_container .nc_profile img {
|
||||
width:20px;
|
||||
height:20px;
|
||||
vertical-align:top;
|
||||
}
|
||||
|
||||
#nc_container a.notify .num {
|
||||
padding:1px 2px;
|
||||
border:0;
|
||||
border-radius:3px;
|
||||
-webkit-border-radius:3px;
|
||||
-moz-border-radius:3px;
|
||||
font-size:12px;
|
||||
font-weight:700;
|
||||
font-family:Gulim,"lucida grande",tahoma,verdana,arial,sans-serif;
|
||||
}
|
||||
|
||||
#nc_container .list {
|
||||
display:none;
|
||||
position:absolute;
|
||||
left:0;
|
||||
bottom:58px;
|
||||
max-width:330px;
|
||||
width:330px;
|
||||
box-sizing:border-box;
|
||||
-moz-box-sizing:border-box;
|
||||
-webkit-box-sizing:border-box;
|
||||
-o-box-sizing:border-box;
|
||||
}
|
||||
|
||||
#nc_container.nc_login .list {
|
||||
bottom:28px;
|
||||
}
|
||||
|
||||
#nc_container a.readall {
|
||||
display:none;
|
||||
float:left;
|
||||
margin:0 4px;
|
||||
font-size:11px;
|
||||
font-weight:700;
|
||||
}
|
||||
|
||||
#nc_container .listscroll {
|
||||
overflow-y:auto;
|
||||
overflow-x:hidden;
|
||||
}
|
||||
|
||||
#nc_container .list ul {
|
||||
overflow:hidden;
|
||||
margin:-1px 0;
|
||||
padding:0;
|
||||
list-style:none;
|
||||
}
|
||||
|
||||
#nc_container .list li {
|
||||
margin:-1px 0;
|
||||
border:1px solid #555;
|
||||
border-width:1px 0;
|
||||
}
|
||||
|
||||
#nc_container .list li img {
|
||||
float:left;
|
||||
margin-right:5px;
|
||||
width:45px;
|
||||
height:45px;
|
||||
border:0;
|
||||
}
|
||||
|
||||
#nc_container .list li a {
|
||||
display:block;
|
||||
overflow:hidden;
|
||||
padding:10px;
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
#nc_container .list span.ago {
|
||||
display:block;
|
||||
font-size:10px;
|
||||
}
|
||||
|
||||
#nc_container .list .more {
|
||||
display:block;
|
||||
padding:10px;
|
||||
text-align:center;
|
||||
}
|
||||
|
||||
#nc_container a:hover,#nc_container .list li a:hover,#nc_container .list .more:hover {
|
||||
text-decoration:none;
|
||||
}
|
||||
|
||||
@media only screen and (max-device-width:480px) {
|
||||
#nc_container {
|
||||
position:relative;
|
||||
height:auto;
|
||||
}
|
||||
|
||||
#nc_container .list {
|
||||
top:2px;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
#nc_container .list ul {
|
||||
display:block;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
#nc_container ul.nc_memu:after {
|
||||
content:"";
|
||||
display:block;
|
||||
visibility:hidden;
|
||||
height:0;
|
||||
clear:both;
|
||||
}
|
||||
|
||||
#nc_container .listscroll {
|
||||
overflow:visible;
|
||||
}
|
||||
|
||||
.ncenterlite_block {
|
||||
display:none;
|
||||
}
|
||||
}
|
||||
|
||||
#nc_container { border-bottom-color:#555; background-color:#333; color:#B0B0B0; opacity:0.95;}
|
||||
#nc_container a { color:#B0B0B0; }
|
||||
#nc_container a:hover { color:#B0B0B0; }
|
||||
#nc_container strong { color:#F3F3F3; }
|
||||
|
||||
#nc_container .list { background-color:#333; filter:alpha(opacity=95); opacity:0.95; -moz-opacity:0.95; }
|
||||
#nc_container .list li { border-color:#555; }
|
||||
#nc_container .list li a:hover { background-color:#555; }
|
||||
#nc_container .list span.ago { color:#D4AF37; }
|
||||
#nc_container .list .more { background: #555; }
|
||||
#nc_container a.readall { display:none; color:#555; color:#D83722;}
|
||||
|
||||
#nc_container a.notify { color:white; }
|
||||
#nc_container a.notify .num { background-color:#D83722; color:white; }
|
||||
#nc_container ul.nc_menu li { padding-right:5px; }
|
||||
|
||||
|
||||
/* zocial */
|
||||
#account-signup [class*="entypo-"]:before {
|
||||
font-family: 'entypo', sans-serif;
|
||||
}
|
||||
|
||||
#account-signup h2 {
|
||||
display:block;
|
||||
position:relative;
|
||||
padding:10px;
|
||||
height:30px;
|
||||
color:rgba(255,255,255,.8);
|
||||
margin-left:12px;
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.nc_login .list {
|
||||
background: #272125;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
}
|
||||
|
||||
#account-signup form.account-signup {
|
||||
position:relative;
|
||||
margin: 50px auto;
|
||||
width: 380px;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
#account-signup input.user,
|
||||
#account-signup input.pass{
|
||||
padding: 16px;
|
||||
border-radius:7px;
|
||||
border:0px;
|
||||
background: rgba(255,255,255,.2);
|
||||
display: block;
|
||||
margin: 15px;
|
||||
width: 212px;
|
||||
color:white;
|
||||
font-size:18px;
|
||||
height: 20.5px;
|
||||
}
|
||||
|
||||
#account-signup input.user {
|
||||
margin-top:0;
|
||||
}
|
||||
|
||||
.nc_login .list li a {
|
||||
padding:10px 10px 10px 15px !important;
|
||||
}
|
||||
.nc_login .list ul {
|
||||
margin:10px 0px -1px 0 !important;
|
||||
}
|
||||
|
||||
#account-signup input.user:focus,
|
||||
#account-signup input.pass:focus{
|
||||
outline-color: rgba(0,0,0,0);
|
||||
background: rgba(255,255,255,.95);
|
||||
color: #e74c3c;
|
||||
}
|
||||
|
||||
input[id="keep_signed"] {
|
||||
|
||||
display: none;
|
||||
}
|
||||
|
||||
input[id="keep_signed"] + label{
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
position: relative;
|
||||
padding-left: 25px;
|
||||
margin-left: 15px;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
input[id="keep_signed"]+ label:before {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin-right: 10px;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 1px;
|
||||
background-color: #ccc;
|
||||
border-radius: 2px;
|
||||
box-shadow: inset 0px 1px 1px 0px rgba(0, 0, 0, .3), 0px 1px 0px 0px rgba(255, 255, 255, .8);
|
||||
}
|
||||
|
||||
input[id="keep_signed"]:checked + label:before {
|
||||
content: "\2713";
|
||||
text-shadow: 1px 1px 1px rgba(0, 0, 0, .2);
|
||||
font-size: 18px;
|
||||
font-weight:800;
|
||||
color: #fff;
|
||||
background: #c14d18;
|
||||
text-align: center;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
#account-signup button.submit {
|
||||
float:right;
|
||||
height: 121px;
|
||||
width: 50px;
|
||||
border: 0px;
|
||||
background: #e74c3c;
|
||||
border-radius:7px;
|
||||
padding: 10px;
|
||||
color:white;
|
||||
font-size:22px;
|
||||
margin-right:10px;
|
||||
}
|
||||
|
||||
#account-signup .inputUserIcon {
|
||||
position:absolute;
|
||||
top:68px;
|
||||
right: 80px;
|
||||
color:white;
|
||||
}
|
||||
|
||||
#account-signup .inputPassIcon {
|
||||
position:absolute;
|
||||
top:135px;
|
||||
right: 80px;
|
||||
color:white;
|
||||
}
|
||||
|
||||
#account-signup input::-webkit-input-placeholder {
|
||||
color: white;
|
||||
}
|
||||
|
||||
#account-signup input:focus::-webkit-input-placeholder {
|
||||
color: #e74c3c;
|
||||
}
|
||||
82
widgets/login_info/skins/ncenter_login/js/ncenter.js
Normal file
82
widgets/login_info/skins/ncenter_login/js/ncenter.js
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
//<![CDATA[
|
||||
(function ($) {
|
||||
$(function () {
|
||||
function setCookie(n, v, d) {
|
||||
var e = "";
|
||||
if (d) {
|
||||
var dt = new Date();
|
||||
dt.setTime(dt.getTime() + (d * 24 * 60 * 60000));
|
||||
e = "; expires=" + dt.toGMTString();
|
||||
}
|
||||
document.cookie = n + "=" + v + e + "; path=/";
|
||||
}
|
||||
|
||||
var n = $('#nc_container');
|
||||
$('.close', n).click(function () {
|
||||
setCookie('_ncenterlite_hide_id', '{$ncenterlite_latest_notify_id}', 1);
|
||||
n.hide().next('div').hide();
|
||||
return false;
|
||||
});
|
||||
$('.readall', n).click(function () {
|
||||
exec_xml('ncenterlite', 'procNcenterliteNotifyReadAll');
|
||||
$('.close', n).triggerHandler('click');
|
||||
return false;
|
||||
});
|
||||
$('a.notify', n).click(function () {
|
||||
$('.list', n).toggle();
|
||||
$('.readall', n).toggle();
|
||||
return false;
|
||||
});
|
||||
$(document).click(function (e) {
|
||||
var t = $(e.target);
|
||||
if (!t.is('#nc_container') && t.parents('#nc_container').length == 0) {
|
||||
if ($('.list', n).is(':visible')) {
|
||||
$('.list', n).hide();
|
||||
$('.readall', n).hide();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var $listWrap = $('.list ul', n);
|
||||
var $btnMore = $('.more', n);
|
||||
$btnMore.click(function () {
|
||||
var page = $(this).data('page');
|
||||
var $item_html = $('<li><a><span class="msg"></span><span class="ago"></span></a></li>');
|
||||
var $profileImg = $('<img class="nc_profile_img" alt="" />');
|
||||
$.exec_json('ncenterlite.getMyNotifyListTpl', {'page': page}, function (ret) {
|
||||
if (!ret.list.data) return;
|
||||
|
||||
for (var i in ret.list.data) {
|
||||
if (ret.list.data.hasOwnProperty(i)) {
|
||||
var item = ret.list.data[i];
|
||||
var $html = $item_html.clone();
|
||||
if (ret.useProfileImage == 'Y') {
|
||||
var $img = $profileImg.clone();
|
||||
if (!item.profileImage) item.profileImage = request_uri + 'modules/ncenterlite/skins/default/img/p.png';
|
||||
$img.attr('src', item.profileImage);
|
||||
$html.find('a').prepend($img);
|
||||
}
|
||||
|
||||
$('span.msg', $html).html(item.text);
|
||||
$('span.ago', $html).html(item.ago);
|
||||
$('a', $html).attr('href', item.url);
|
||||
|
||||
if (i == 0) $html.attr('id', 'ncenterlite_page_' + ret.list.page.cur_page);
|
||||
$listWrap.append($html);
|
||||
}
|
||||
}
|
||||
|
||||
$listWrap.animate({scrollTop: (ret.list.page.cur_page - 1) * 265}, 800);
|
||||
|
||||
if (ret['list'].page.total_page <= ret.list.page.cur_page) {
|
||||
$btnMore.remove();
|
||||
}
|
||||
}, ['list']);
|
||||
|
||||
$(this).data('page', ++page);
|
||||
return false;
|
||||
});
|
||||
});
|
||||
})(jQuery);
|
||||
//]]>
|
||||
11
widgets/login_info/skins/ncenter_login/login.xml
Normal file
11
widgets/login_info/skins/ncenter_login/login.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<filter name="widget_login" module="member" act="procMemberLogin">
|
||||
<form>
|
||||
<node target="user_id" required="true" filter="user_id" />
|
||||
<node target="password" required="true" />
|
||||
</form>
|
||||
<parameter />
|
||||
<response callback_func="completeLogin">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
48
widgets/login_info/skins/ncenter_login/login_form.html
Normal file
48
widgets/login_info/skins/ncenter_login/login_form.html
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
<load target="./css/ncenter.css" />
|
||||
<load target="./js/ncenter.js" type="body" />
|
||||
|
||||
<div id="nc_container" class="nc_login" {$ncenterlite_zindex}>
|
||||
<ul class="nc_memu guest">
|
||||
<li class="nc_profile fLeft">
|
||||
<block cond="$useProfileImage">
|
||||
<img cond="!$profileImage" src="{Context::getRequestUri()}modules/ncenterlite/skins/default/img/p.png" alt="my profile" class="nc_profile_img" />
|
||||
</block>
|
||||
<strong>손님</strong>
|
||||
</li>
|
||||
|
||||
<li class="fLeft">
|
||||
<a class="notify" href="#">
|
||||
로그인해주세요!
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="list">
|
||||
<form id="account-signup" action="{getUrl('','act','procMemberLogin')}" method="post" ruleset="@login" class="account">
|
||||
<fieldset id="acField">
|
||||
<input type="hidden" name="act" value="procMemberLogin"/>
|
||||
<input type="hidden" name="success_return_url" value="{htmlspecialchars(getRequestUriByServerEnviroment(), ENT_COMPAT | ENT_HTML401, 'UTF-8', false)}"/>
|
||||
<input type="hidden" name="xe_validator_id" value="widgets/login_info/skins/default/login_form/1"/>
|
||||
<div cond="$XE_VALIDATOR_MESSAGE && $XE_VALIDATOR_ID == 'widgets/login_info/skins/default/login_form/1'"
|
||||
class="message {$XE_VALIDATOR_MESSAGE_TYPE}">
|
||||
<p>{$XE_VALIDATOR_MESSAGE}</p>
|
||||
</div>
|
||||
<h2><i class="xi-user"></i>{$lang->cmd_login}</h2>
|
||||
<button class="submit"><i class="xi-user-check"></i></button>
|
||||
<span class="inputUserIcon"><i class="xi-user"></i></span>
|
||||
<input name="user_id" id="user_id" type="text" class="user" placeholder="{$lang->user_id}" required cond="$member_config->identifier != 'email_address'"/>
|
||||
<input name="user_id" id="user_id" type="email" class="user" placeholder="{$lang->email_address}" required cond="$member_config->identifier == 'email_address'"/>
|
||||
<span class="inputPassIcon"><i class="xi-key"></i></span>
|
||||
<input name="password" id="user_pw" type="password" class="pass" required placeholder="{$lang->password}"/>
|
||||
<p class="keep">
|
||||
<input type="checkbox" name="keep_signed" id="keep_signed" value="Y"/>
|
||||
<label for="keep_signed">{$lang->keep_signed}</label>
|
||||
</p>
|
||||
<ul class="help">
|
||||
<li><a href="{getUrl('act','dispMemberSignUpForm')}">{$lang->cmd_signup}</a></li>
|
||||
<li><a href="{getUrl('act','dispMemberFindAccount')}">{$lang->cmd_find_member_account}</a></li>
|
||||
</ul>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
59
widgets/login_info/skins/ncenter_login/login_info.html
Normal file
59
widgets/login_info/skins/ncenter_login/login_info.html
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
<load target="./css/ncenter.css" />
|
||||
<load target="./js/ncenter.js" type="body" />
|
||||
|
||||
<div id="nc_container" {$ncenterlite_zindex}>
|
||||
<ul class="nc_memu">
|
||||
<li class="nc_profile fLeft">
|
||||
<block cond="$useProfileImage">
|
||||
<img cond="$profileImage" src="{$profileImage->src}" alt="my profile" class="nc_profile_img" />
|
||||
<img cond="!$profileImage" src="{Context::getRequestUri()}modules/ncenterlite/skins/default/img/p.png" alt="my profile" class="nc_profile_img" />
|
||||
</block>
|
||||
<strong>{$logged_info->nick_name}</strong> {$lang->ncenterlite_sir}!
|
||||
</li>
|
||||
|
||||
<li class="fLeft">
|
||||
<a class="notify" href="#">
|
||||
<!--@if($_ncenterlite_num > 1)-->
|
||||
{sprintf($lang->ncenterlite_messages, $ncenterlite_page_navigation->total_count)}
|
||||
<!--@else-->
|
||||
{sprintf($lang->ncenterlite_message, $ncenterlite_page_navigation->total_count)}
|
||||
<!--@endif-->
|
||||
</a>
|
||||
<a cond="$ncenterlite_page_navigation->total_count >= 1" href="#" class="readall">{$lang->ncenterlite_delete_all}</a>
|
||||
</li>
|
||||
|
||||
<li class="fRight"><a class="close" href="#">× Close</a></li>
|
||||
</ul>
|
||||
<ul class="me_menu">
|
||||
<li class="nc_profile fLeft">
|
||||
<block cond="$useProfileImage">
|
||||
<img cond="$profileImage" src="{$profileImage->src}" alt="my profile" class="nc_profile_img" />
|
||||
<img cond="!$profileImage" src="{Context::getRequestUri()}modules/ncenterlite/skins/default/img/p.png" alt="my profile" class="nc_profile_img" />
|
||||
</block>
|
||||
<strong>{$logged_info->nick_name}</strong>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{getUrl('act','dispMemberLogout')}" >{$lang->cmd_logout}</a>
|
||||
</li>
|
||||
<li>
|
||||
{$lang->last_login}: {zDate($logged_info->last_login, "Y-m-d")}
|
||||
</li>
|
||||
<li cond="$logged_info->is_admin == 'Y'" >
|
||||
<a href="{getUrl('', 'module','admin')}" title="{$lang->admin}" class="admin">{$lang->cmd_management}</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="list">
|
||||
<ul>
|
||||
<li loop="$ncenterlite_list => $o">
|
||||
<a href="{$o->url}">
|
||||
<block cond="$useProfileImage">
|
||||
<img src="{$o->profileImage}"|cond="$o->profileImage" src="{Context::getRequestUri()}modules/ncenterlite/skins/default/img/p.png"|cond="!$o->profileImage" alt="" class="nc_profile_img" />
|
||||
</block>
|
||||
<span class="msg">{$o->text}</span><span class="ago">{$o->ago}</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<a cond="$ncenterlite_page_navigation->total_count > 5" class="more" href="#" data-page="2">{$lang->ncenterlite_more}</a>
|
||||
</div>
|
||||
</div>
|
||||
7
widgets/login_info/skins/ncenter_login/logout.xml
Normal file
7
widgets/login_info/skins/ncenter_login/logout.xml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<filter name="widget_logout" module="member" act="procMemberLogout">
|
||||
<form />
|
||||
<response>
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
</response>
|
||||
</filter>
|
||||
36
widgets/login_info/skins/ncenter_login/skin.xml
Normal file
36
widgets/login_info/skins/ncenter_login/skin.xml
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">RX 알림센터 로그인 스킨</title>
|
||||
<description xml:lang="ko">RX 알림센터겸용 로그인 스킨입니다.</description>
|
||||
<version>1.0</version>
|
||||
<date>2016-05-27</date>
|
||||
<link>http://bjrambo.com</link>
|
||||
|
||||
<author email_address="qw5414@naver.com" link="http://bjrambo.com">
|
||||
<name xml:lang="ko">NAVER</name>
|
||||
</author>
|
||||
|
||||
<colorset>
|
||||
<color name="layout">
|
||||
<title xml:lang="ko">레이아웃에 맞춤</title>
|
||||
<title xml:lang="jp">レイアウトに合わせる</title>
|
||||
<title xml:lang="zh-CN">随布局</title>
|
||||
<title xml:lang="en">레이아웃에 맞춤</title>
|
||||
<title xml:lang="zh-TW">隨版面</title>
|
||||
</color>
|
||||
<color name="white">
|
||||
<title xml:lang="ko">하얀색(기본)</title>
|
||||
<title xml:lang="jp">白(デフォルト)</title>
|
||||
<title xml:lang="zh-CN">白色(默认)</title>
|
||||
<title xml:lang="en">White (default)</title>
|
||||
<title xml:lang="zh-TW">白色(預設)</title>
|
||||
</color>
|
||||
<color name="black">
|
||||
<title xml:lang="ko">검은색</title>
|
||||
<title xml:lang="jp">黒</title>
|
||||
<title xml:lang="en">Black</title>
|
||||
<title xml:lang="zh-CN">黑色</title>
|
||||
<title xml:lang="zh-TW">黑色</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||
Loading…
Add table
Add a link
Reference in a new issue