rhymix/modules/ncenterlite/ncenterlite.admin.view.php
Kijin Sung c52187a8f2 Support user config of notification types, fixes #994
코어에서 지원하는 알림 종류 및 알림 수신 방법이 늘어남에 따라,
관리자가 설정한 범위 내에서 회원들이 알림 수신 방법을 선택할 수 있도록 합니다.
기존에는 수신 여부만 선택할 수 있었으나 이제 더 세부적인 설정이 가능합니다.
예를 들어 웹 알림과 푸시알림은 받고, 메일 알림과 문자 알림은 끌 수 있습니다.

이 기능을 지원하기 위해 ncenterlite_user_set 테이블 스키마를 대폭 조정합니다.
기존 설정은 가능하면 그대로 유지하려고 노력하였습니다.
2020-12-17 23:41:31 +09:00

126 lines
3.8 KiB
PHP

<?php
class ncenterliteAdminView extends ncenterlite
{
function init()
{
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile(strtolower(str_replace('dispNcenterliteAdmin', '', $this->act)));
}
function dispNcenterliteAdminConfig()
{
$oNcenterliteModel = getModel('ncenterlite');
$config = $oNcenterliteModel->getConfig();
Context::set('config', $config);
Context::set('notify_types', NcenterliteModel::getNotifyTypes());
Context::set('sms_available', Rhymix\Framework\SMS::getDefaultDriver()->getName() !== 'Dummy');
Context::set('push_available', count(Rhymix\Framework\Config::get('push.types')) > 0);
}
function dispNcenterliteAdminSeletedmid()
{
$oModuleModel = getModel('module');
$oNcenterliteModel = getModel('ncenterlite');
$config = $oNcenterliteModel->getConfig();
$mid_list = $oModuleModel->getMidList(null, array('module_srl', 'mid', 'browser_title', 'module'));
Context::set('mid_list', $mid_list);
Context::set('config', $config);
}
function dispNcenterliteAdminOtherComment()
{
$oModuleModel = getModel('module');
$oNcenterliteModel = getModel('ncenterlite');
$config = $oNcenterliteModel->getConfig();
$mid_list = $oModuleModel->getMidList(null, array('module_srl', 'mid', 'browser_title', 'module'));
Context::set('mid_list', $mid_list);
Context::set('config', $config);
}
function dispNcenterliteAdminSkinsetting()
{
$oModuleModel = getModel('module');
$oLayoutModel = getModel('layout');
$oNcenterliteModel = getModel('ncenterlite');
$config = $oNcenterliteModel->getConfig();
Context::set('config', $config);
$layout_list = $oLayoutModel->getLayoutList();
Context::set('layout_list', $layout_list);
$mobile_layout_list = $oLayoutModel->getLayoutList(0, 'M');
Context::set('mlayout_list', $mobile_layout_list);
$skin_list = $oModuleModel->getSkins($this->module_path);
Context::set('skin_list', $skin_list);
$mskin_list = $oModuleModel->getSkins($this->module_path, "m.skins");
Context::set('mskin_list', $mskin_list);
if(!$skin_list[$config->skin]) $config->skin = 'default';
Context::set('colorset_list', $skin_list[$config->skin]->colorset);
if(!$mskin_list[$config->mskin]) $config->mskin = 'default';
Context::set('mcolorset_list', $mskin_list[$config->mskin]->colorset);
$security = new Security();
$security->encodeHTML('config..');
$security->encodeHTML('skin_list..title');
$security->encodeHTML('colorset_list..name','colorset_list..title');
}
function dispNcenterliteAdminAdvancedconfig()
{
$oNcenterliteModel = getModel('ncenterlite');
$member_config = getModel('member')->getMemberConfig();
$variable_name = array();
foreach($member_config->signupForm as $value)
{
if($value->type == 'tel')
{
$variable_name[] = $value->name;
}
}
$config = $oNcenterliteModel->getConfig();
Context::set('config', $config);
Context::set('variable_name', $variable_name);
}
function dispNcenterliteAdminList()
{
$oNcenterliteAdminModel = getAdminModel('ncenterlite');
$output = $oNcenterliteAdminModel->getAdminNotifyList();
Context::set('total_count', $output->page_navigation->total_count);
Context::set('total_page', $output->page_navigation->total_page);
Context::set('page', $output->page);
Context::set('ncenterlite_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
}
function dispNcenterliteAdminTest()
{
}
function dispNcenterliteAdminCustomList()
{
$oNcenterliteAdminModel = getAdminModel('ncenterlite');
$output = $oNcenterliteAdminModel->getNotifyType();
Context::set('total_count', $output->page_navigation->total_count);
Context::set('total_page', $output->page_navigation->total_page);
Context::set('page', $output->page);
Context::set('type_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
}
}