mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-03 16:51:40 +09:00
Merge branch 'next' into next-push
This commit is contained in:
commit
a32d06660d
39 changed files with 459 additions and 348 deletions
|
|
@ -42,6 +42,51 @@ a img {
|
|||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
blockquote {
|
||||
padding: 2px 0;
|
||||
border-style: solid;
|
||||
border-color: #ccc;
|
||||
border-width: 0;
|
||||
border-left-width: 5px;
|
||||
padding-left: 20px;
|
||||
padding-right: 8px;
|
||||
|
||||
&:lang(ar), &:lang(arc), &:lang(dv), &:lang(ha), &:lang(he), &:lang(khw), &:lang(ks), &:lang(ku), &:lang(ps), &:lang(fa), &:lang(ur), &:lang(yi) {
|
||||
border-left-width: 0px;
|
||||
border-right-width: 5px;
|
||||
padding-left: 8px;
|
||||
padding-right: 20px;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* lists */
|
||||
ul {
|
||||
list-style-type: disc;
|
||||
}
|
||||
|
||||
ol {
|
||||
list-style-type: decimal;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
display: block;
|
||||
margin-left: 1em;
|
||||
margin-right: 0;
|
||||
padding-left: 25px;
|
||||
padding-right: 0;
|
||||
&:lang(ar), &:lang(arc), &:lang(dv), &:lang(ha), &:lang(he), &:lang(khw), &:lang(ks), &:lang(ku), &:lang(ps), &:lang(fa), &:lang(ur), &:lang(yi) {
|
||||
padding-left: 0px;
|
||||
padding-right: 25px;
|
||||
margin-left: 0;
|
||||
margin-right: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
li {
|
||||
display: list-item;
|
||||
}
|
||||
}
|
||||
@media screen {
|
||||
img, video {
|
||||
|
|
@ -317,7 +362,7 @@ a img {
|
|||
}
|
||||
}
|
||||
|
||||
/* Button (for XE compatibility */
|
||||
/* Button (for XE compatibility) */
|
||||
.btnArea_mixin(@enabled) when (@enabled = true) {
|
||||
clear: both;
|
||||
margin: 10px 0;
|
||||
|
|
|
|||
228
common/framework/drivers/sms/solapi.php
Normal file
228
common/framework/drivers/sms/solapi.php
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
<?php
|
||||
|
||||
namespace Rhymix\Framework\Drivers\SMS;
|
||||
|
||||
/**
|
||||
* The Solapi SMS driver.
|
||||
*/
|
||||
class SolAPI extends Base implements \Rhymix\Framework\Drivers\SMSInterface
|
||||
{
|
||||
const appId = 'PAOe9c8ftH8R';
|
||||
|
||||
/**
|
||||
* API specifications.
|
||||
*/
|
||||
protected static $_spec = array(
|
||||
'max_recipients' => 1000,
|
||||
'sms_max_length' => 90,
|
||||
'sms_max_length_in_charset' => 'CP949',
|
||||
'lms_supported' => true,
|
||||
'lms_supported_country_codes' => array(82),
|
||||
'lms_max_length' => 2000,
|
||||
'lms_max_length_in_charset' => 'CP949',
|
||||
'lms_subject_supported' => true,
|
||||
'lms_subject_max_length' => 40,
|
||||
'mms_supported' => true,
|
||||
'mms_supported_country_codes' => array(82),
|
||||
'mms_max_length' => 2000,
|
||||
'mms_max_length_in_charset' => 'CP949',
|
||||
'mms_subject_supported' => true,
|
||||
'mms_subject_max_length' => 40,
|
||||
'image_allowed_types' => array('jpg', 'gif', 'png'),
|
||||
'image_max_dimensions' => array(2048, 2048),
|
||||
'image_max_filesize' => 300000,
|
||||
'delay_supported' => true,
|
||||
);
|
||||
|
||||
/**
|
||||
* Config keys used by this driver are stored here.
|
||||
*/
|
||||
protected static $_required_config = array('api_key', 'api_secret');
|
||||
protected static $_optional_config = array('sender_key');
|
||||
|
||||
/**
|
||||
* Check if the current SMS driver is supported on this server.
|
||||
*
|
||||
* This method returns true on success and false on failure.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function isSupported()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a message.
|
||||
*
|
||||
* This method returns true on success and false on failure.
|
||||
*
|
||||
* @param array $messages
|
||||
* @param object $original
|
||||
* @return bool
|
||||
*/
|
||||
public function send(array $messages, \Rhymix\Framework\SMS $original)
|
||||
{
|
||||
$groupArray = array();
|
||||
$groupMessage = false;
|
||||
if(count($messages) > 1)
|
||||
{
|
||||
$groupMessage = true;
|
||||
}
|
||||
foreach ($messages as $i => $message)
|
||||
{
|
||||
if (count($message->to) > 1 && !$groupMessage)
|
||||
{
|
||||
$groupMessage = true;
|
||||
}
|
||||
$options = new \stdClass;
|
||||
if ($this->_config['sender_key'])
|
||||
{
|
||||
$options->sender_key = $this->_config['sender_key'];
|
||||
$options->type = 'CTA';
|
||||
}
|
||||
else
|
||||
{
|
||||
$options->type = $message->type;
|
||||
}
|
||||
$options->from = $message->from;
|
||||
$options->to = $message->to;
|
||||
$options->text = $message->content ?: $message->type;
|
||||
if ($message->delay && $message->delay > time())
|
||||
{
|
||||
$options->datetime = gmdate('YmdHis', $message->delay + (3600 * 9));
|
||||
}
|
||||
if ($message->country && $message->country != 82)
|
||||
{
|
||||
$options->country = $message->country;
|
||||
}
|
||||
if ($message->subject)
|
||||
{
|
||||
$options->subject = $message->subject;
|
||||
}
|
||||
else
|
||||
{
|
||||
if($message->type != 'SMS')
|
||||
{
|
||||
// 문자 전송 타입이 SMS이 아닐경우 subjext가 필수
|
||||
$options->subject = cut_str($message->content, 20);
|
||||
}
|
||||
}
|
||||
if ($message->image)
|
||||
{
|
||||
$output = $this->uploadImage($message->image, $message->type);
|
||||
$options->imageId = $output->fileId;
|
||||
}
|
||||
$groupArray[] = $options;
|
||||
}
|
||||
|
||||
if($groupMessage)
|
||||
{
|
||||
$jsonObject = new \stdClass();
|
||||
$jsonObject->messages = json_encode($groupArray);
|
||||
$groupId = $this->createGroup();
|
||||
if(!$groupId)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$result = json_decode($this->request("PUT", "messages/v4/groups/{$groupId}/messages", $jsonObject));
|
||||
if(!$result || $result->errorCode)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$result = json_decode($this->request("POST", "messages/v4/groups/{$groupId}/send"));
|
||||
if (!$result || $result->status != 'SENDING')
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// simpleMessage 를 사용 할 경우 to가 array 타입이면 문자 전송이 되지 않아 string 으로 요청
|
||||
$groupArray[0]->to = $groupArray[0]->to[0];
|
||||
$simpleObject = new \stdClass();
|
||||
$simpleObject->message = $groupArray[0];
|
||||
$simpleObject->agent = new \stdClass();
|
||||
$simpleObject->agent->appId = self::appId;
|
||||
|
||||
$result = json_decode($this->request("POST", "messages/v4/send", $simpleObject));
|
||||
if(!$result || $result->errorCode)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create header string for http protocol
|
||||
* @param $config
|
||||
* @return string
|
||||
*/
|
||||
private function getHeader()
|
||||
{
|
||||
date_default_timezone_set('Asia/Seoul');
|
||||
$date = date('Y-m-d\TH:i:s.Z\Z', time());
|
||||
$salt = uniqid();
|
||||
$signature = hash_hmac('sha256', $date . $salt, $this->_config['api_secret']);
|
||||
return "HMAC-SHA256 apiKey={$this->_config['api_key']}, date={$date}, salt={$salt}, signature={$signature}";
|
||||
}
|
||||
|
||||
/**
|
||||
* Create message group
|
||||
* @return string : group id
|
||||
*/
|
||||
private function createGroup()
|
||||
{
|
||||
$args = new \stdClass();
|
||||
$args->appId = self::appId;
|
||||
$result = $this->request("POST", 'messages/v4/groups', $args);
|
||||
$groupId = json_decode($result)->groupId;
|
||||
return $groupId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Upload to image for MMS message.
|
||||
* @param $imageDir
|
||||
* @param $type
|
||||
* @return mixed
|
||||
*/
|
||||
private function uploadImage($imageDir, $type)
|
||||
{
|
||||
$path = $imageDir;
|
||||
$data = file_get_contents($path);
|
||||
$imageData = base64_encode($data);
|
||||
$jsonData = new \stdClass();
|
||||
$jsonData->file = $imageData;
|
||||
$jsonData->type = $type;
|
||||
$url = "storage/v1/files";
|
||||
return json_decode($this->request('POST', $url, $jsonData));
|
||||
}
|
||||
|
||||
/**
|
||||
* Request string message.
|
||||
* @param $method
|
||||
* @param $url
|
||||
* @param bool $data
|
||||
* @return bool|string
|
||||
*/
|
||||
private function request($method, $url, $data = false)
|
||||
{
|
||||
$url = 'https://api.solapi.com/' . $url;
|
||||
|
||||
if(!$data)
|
||||
{
|
||||
$data = null;
|
||||
}
|
||||
else
|
||||
{
|
||||
$data = json_encode($data);
|
||||
}
|
||||
$result = \FileHandler::getRemoteResource($url, $data, 3, $method, 'application/json', array('Authorization' => $this->getHeader()));
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
|
@ -104,13 +104,13 @@
|
|||
<h1 class="tit">GET INVOLVED</h1>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="https://www.xetown.com/" target="_blank" class="ico"><i class="xi-community"></i><span class="blind">COMMUNITY</span></a>
|
||||
<a href="https://xetown.com/" target="_blank" class="ico"><i class="xi-community"></i><span class="blind">COMMUNITY</span></a>
|
||||
<h2>COMMUNITY</h2>
|
||||
<p>Rhymix와 관련한 다양한 커뮤니티를 만나보세요.</p>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://www.xetown.com/qna" target="_blank" class="ico"><i class="xi-users"></i><span class="blind">Q&A</span></a>
|
||||
<h2>Q&A</h2>
|
||||
<a href="https://xetown.com/questions" target="_blank" class="ico"><i class="xi-users"></i><span class="blind">Q&A</span></a>
|
||||
<h2>Q&A</h2>
|
||||
<p>도움이 필요할 때에는 전문가들과 이야기할 수 있습니다.</p>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
|||
|
|
@ -160,8 +160,6 @@ class editorAdminController extends editor
|
|||
$config->comment_editor_toolbar_hide = $configVars->comment_editor_toolbar_hide === 'Y' ? 'Y' : 'N';
|
||||
$config->mobile_comment_editor_toolbar = $configVars->mobile_comment_editor_toolbar;
|
||||
$config->mobile_comment_editor_toolbar_hide = $configVars->mobile_comment_editor_toolbar_hide === 'Y' ? 'Y' : 'N';
|
||||
$config->content_style = $configVars->content_style;
|
||||
$config->comment_content_style = $configVars->comment_content_style;
|
||||
$config->sel_editor_colorset = $configVars->sel_editor_colorset;
|
||||
$config->sel_comment_editor_colorset = $configVars->sel_comment_editor_colorset;
|
||||
|
||||
|
|
|
|||
|
|
@ -50,16 +50,6 @@ class editorAdminView extends editor
|
|||
$skin_info = $oModuleModel->loadSkinInfo($this->module_path,$editor_config->editor_skin);
|
||||
$comment_skin_info = $oModuleModel->loadSkinInfo($this->module_path,$editor_config->comment_editor_skin);
|
||||
|
||||
$contents = FileHandler::readDir(_XE_PATH_.'modules/editor/styles');
|
||||
$content_style_list = array();
|
||||
for($i=0,$c=count($contents);$i<$c;$i++)
|
||||
{
|
||||
$style = $contents[$i];
|
||||
$info = $oModuleModel->loadSkinInfo($this->module_path,$style,'styles');
|
||||
$content_style_list[$style] = new stdClass();
|
||||
$content_style_list[$style]->title = $info->title;
|
||||
}
|
||||
|
||||
// Get install info, update info, count
|
||||
$oAutoinstallModel = getModel('autoinstall');
|
||||
foreach($component_list as $component_name => $xml_info)
|
||||
|
|
@ -82,7 +72,6 @@ class editorAdminView extends editor
|
|||
Context::set('editor_skin_list', $editor_skin_list);
|
||||
Context::set('editor_colorset_list', $skin_info->colorset);
|
||||
Context::set('comment_editor_colorset_list', $comment_skin_info->colorset);
|
||||
Context::set('content_style_list', $content_style_list);
|
||||
Context::set('component_list', $component_list);
|
||||
Context::set('component_count', $component_count);
|
||||
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ class editor extends ModuleObject
|
|||
'mobile_editor_toolbar' => 'simple',
|
||||
'mobile_editor_toolbar_hide' => 'Y',
|
||||
'sel_editor_colorset' => 'moono-lisa',
|
||||
'content_style' => 'ckeditor_light',
|
||||
'comment_editor_skin' => 'ckeditor',
|
||||
'comment_editor_height' => 100,
|
||||
'comment_editor_toolbar' => 'simple',
|
||||
|
|
@ -39,7 +38,6 @@ class editor extends ModuleObject
|
|||
'mobile_comment_editor_toolbar' => 'simple',
|
||||
'mobile_comment_editor_toolbar_hide' => 'Y',
|
||||
'sel_comment_editor_colorset' => 'moono-lisa',
|
||||
'comment_content_style' => 'ckeditor_light',
|
||||
'content_font' => '',
|
||||
'content_font_size' => '13px',
|
||||
'content_line_height' => '160%',
|
||||
|
|
|
|||
|
|
@ -115,8 +115,6 @@ class editorController extends editor
|
|||
if($editor_config->default_editor_settings !== 'Y') $editor_config->default_editor_settings = 'N';
|
||||
$editor_config->editor_skin = Context::get('editor_skin');
|
||||
$editor_config->comment_editor_skin = Context::get('comment_editor_skin');
|
||||
$editor_config->content_style = Context::get('content_style');
|
||||
$editor_config->comment_content_style = Context::get('comment_content_style');
|
||||
$editor_config->content_font = Context::get('content_font');
|
||||
if($editor_config->content_font)
|
||||
{
|
||||
|
|
@ -171,13 +169,12 @@ class editorController extends editor
|
|||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief convert editor component codes to be returned and specify content style.
|
||||
*/
|
||||
function triggerEditorComponentCompile(&$content)
|
||||
{
|
||||
if(Context::getResponseMethod() !== 'HTML') return;
|
||||
|
||||
/**
|
||||
* @brief Load editor style
|
||||
*/
|
||||
function procLoadEditorStyle()
|
||||
{
|
||||
$module_info = Context::get('module_info');
|
||||
$module_srl = $module_info->module_srl;
|
||||
if($module_srl)
|
||||
|
|
@ -188,7 +185,7 @@ class editorController extends editor
|
|||
{
|
||||
$editor_config = getModel('module')->getModuleConfig('editor');
|
||||
}
|
||||
|
||||
|
||||
if ($editor_config)
|
||||
{
|
||||
$default_font_config = $this->default_font_config;
|
||||
|
|
@ -198,58 +195,22 @@ class editorController extends editor
|
|||
if ($editor_config->content_paragraph_spacing) $default_font_config['default_paragraph_spacing'] = $editor_config->content_paragraph_spacing;
|
||||
if ($editor_config->content_word_break) $default_font_config['default_word_break'] = $editor_config->content_word_break;
|
||||
Context::set('default_font_config', $default_font_config);
|
||||
|
||||
$content_style = $editor_config->content_style;
|
||||
if($content_style)
|
||||
{
|
||||
$path = _XE_PATH_ . 'modules/editor/styles/'.$content_style.'/';
|
||||
if(is_dir($path) && file_exists($path . 'style.ini'))
|
||||
{
|
||||
$ini = file($path.'style.ini');
|
||||
foreach($ini as $file)
|
||||
{
|
||||
$file = trim($file);
|
||||
if(!$file) continue;
|
||||
|
||||
$args = array('./modules/editor/styles/'.$content_style.'/'.$file);
|
||||
Context::loadFile($args);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
$buff = array();
|
||||
$buff[] = '<style> .xe_content {';
|
||||
if ($content_font)
|
||||
{
|
||||
$buff[] = "font-family: $content_font;";
|
||||
}
|
||||
if ($content_font_size)
|
||||
{
|
||||
$buff[] = "font-size: $content_font_size;";
|
||||
}
|
||||
if ($content_line_height)
|
||||
{
|
||||
$buff[] = "line-height: $content_line_height;";
|
||||
}
|
||||
if ($content_word_break === 'none')
|
||||
{
|
||||
$buff[] = 'white-space: nowrap;';
|
||||
}
|
||||
else
|
||||
{
|
||||
$buff[] = 'word-break: ' . ($content_word_break ?: 'normal') . '; word-wrap: break-word;';
|
||||
}
|
||||
$buff[] = '}';
|
||||
$buff[] = '.xe_content p { margin: 0 0 ' . ($content_paragraph_spacing ?: 0) . ' 0; }';
|
||||
$buff[] = '</style>';
|
||||
Context::addHtmlHeader(implode(' ', $buff));
|
||||
*/
|
||||
}
|
||||
else
|
||||
{
|
||||
Context::set('default_font_config', $this->default_font_config);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief convert editor component codes to be returned and specify content style.
|
||||
*/
|
||||
function triggerEditorComponentCompile(&$content)
|
||||
{
|
||||
if(Context::getResponseMethod() !== 'HTML') return;
|
||||
|
||||
$this->procLoadEditorStyle();
|
||||
|
||||
$content = $this->transComponent($content);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ class editorModel extends editor
|
|||
Context::set('upload_target_srl', $upload_target_srl);
|
||||
Context::set('editor_sequence', $option->editor_sequence);
|
||||
|
||||
// Check that the skin and content style exist.
|
||||
// Check that the skin exist.
|
||||
if (!$option->editor_skin)
|
||||
{
|
||||
$option->editor_skin = $option->skin;
|
||||
|
|
@ -122,10 +122,6 @@ class editorModel extends editor
|
|||
{
|
||||
$option->editor_skin = $this->default_editor_config['editor_skin'];
|
||||
}
|
||||
if (!$option->content_style || !file_exists($this->module_path . 'styles/' . $option->content_style))
|
||||
{
|
||||
$option->content_style = $this->default_editor_config['content_style'];
|
||||
}
|
||||
if (!$option->sel_editor_colorset)
|
||||
{
|
||||
$option->sel_editor_colorset = $option->colorset ?: $this->default_editor_config['sel_editor_colorset'];
|
||||
|
|
@ -140,8 +136,6 @@ class editorModel extends editor
|
|||
}
|
||||
Context::set('skin', $option->editor_skin);
|
||||
Context::set('editor_path', $this->module_path . 'skins/' . $option->editor_skin . '/');
|
||||
Context::set('content_style', $option->content_style);
|
||||
Context::set('content_style_path', $this->module_path . 'styles/' . $option->content_style);
|
||||
Context::set('colorset', $option->sel_editor_colorset);
|
||||
Context::set('editor_height', $option->editor_height);
|
||||
Context::set('editor_toolbar', $option->editor_toolbar);
|
||||
|
|
@ -250,6 +244,7 @@ class editorModel extends editor
|
|||
// Compile and return the editor skin template.
|
||||
$tpl_path = Context::get('editor_path');
|
||||
Context::loadLang($tpl_path.'lang');
|
||||
|
||||
$oTemplate = TemplateHandler::getInstance();
|
||||
return $oTemplate->compile($tpl_path, 'editor.html');
|
||||
}
|
||||
|
|
@ -295,7 +290,6 @@ class editorModel extends editor
|
|||
$option->$key = $val;
|
||||
}
|
||||
$option->editor_skin = $option->comment_editor_skin;
|
||||
$option->content_style = $option->comment_content_style;
|
||||
$option->sel_editor_colorset = $option->sel_comment_editor_colorset;
|
||||
$option->upload_file_grant = $option->comment_upload_file_grant;
|
||||
$option->enable_default_component_grant = $option->enable_comment_default_component_grant;
|
||||
|
|
|
|||
|
|
@ -29,7 +29,6 @@ class editorView extends editor
|
|||
$oEditorModel = getModel('editor');
|
||||
$option = $oEditorModel->getEditorConfig();
|
||||
$option->editor_skin = 'ckeditor';
|
||||
$option->content_style = 'ckeditor_light';
|
||||
$option->sel_editor_colorset = 'moono-lisa';
|
||||
$option->primary_key_name = 'primary_key';
|
||||
$option->content_key_name = 'content';
|
||||
|
|
@ -141,16 +140,6 @@ class editorView extends editor
|
|||
$skin_info = $oModuleModel->loadSkinInfo($this->module_path,$editor_config->comment_editor_skin);
|
||||
Context::set('editor_comment_colorset_list', $skin_info->colorset);
|
||||
|
||||
$contents = FileHandler::readDir(_XE_PATH_.'modules/editor/styles');
|
||||
$content_style_list = array();
|
||||
for($i=0,$c=count($contents);$i<$c;$i++)
|
||||
{
|
||||
$style = $contents[$i];
|
||||
$info = $oModuleModel->loadSkinInfo($this->module_path,$style,'styles');
|
||||
$content_style_list[$style] = new stdClass();
|
||||
$content_style_list[$style]->title = $info->title;
|
||||
}
|
||||
Context::set('content_style_list', $content_style_list);
|
||||
// Get a group list
|
||||
$oMemberModel = getModel('member');
|
||||
$site_module_info = Context::get('site_module_info');
|
||||
|
|
@ -161,7 +150,6 @@ class editorView extends editor
|
|||
$security = new Security();
|
||||
$security->encodeHTML('group_list..title');
|
||||
$security->encodeHTML('group_list..description');
|
||||
$security->encodeHTML('content_style_list..');
|
||||
$security->encodeHTML('editor_comment_colorset_list..title');
|
||||
|
||||
// Set a template file
|
||||
|
|
|
|||
|
|
@ -51,7 +51,6 @@ $lang->component_history = 'Updates';
|
|||
$lang->component_description = 'Description';
|
||||
$lang->component_extra_vars = 'Option Variable';
|
||||
$lang->component_grant = 'Permission Setting';
|
||||
$lang->content_style = 'Content Style';
|
||||
$lang->content_font = 'Content Font';
|
||||
$lang->content_font_size = 'Content Font Size';
|
||||
$lang->about_component = 'About component';
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ $lang->component_history = '更新履歴';
|
|||
$lang->component_description = '説明';
|
||||
$lang->component_extra_vars = '設定変数';
|
||||
$lang->component_grant = '権限設定';
|
||||
$lang->content_style = 'コンテンツスタイル';
|
||||
$lang->content_font = 'コンテンツフォント';
|
||||
$lang->content_font_size = 'コンテンツフォントサイズ';
|
||||
$lang->about_component = 'コンポーネント情報';
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@ $lang->component_history = '변경 이력';
|
|||
$lang->component_description = '설명';
|
||||
$lang->component_extra_vars = '설정 변수';
|
||||
$lang->component_grant = '권한설정';
|
||||
$lang->content_style = '문서 서식';
|
||||
$lang->content_font = '문서 폰트';
|
||||
$lang->content_font_size = '문서 폰트 크기';
|
||||
$lang->about_component = '컴포넌트 소개';
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ $lang->component_history = 'Güncelleştirmeler';
|
|||
$lang->component_description = 'Açıklama';
|
||||
$lang->component_extra_vars = 'Değişken Seçenek';
|
||||
$lang->component_grant = 'Yetki Ayarı';
|
||||
$lang->content_style = 'İçerik Tarzı';
|
||||
$lang->content_font = 'İçerik Yazı Tipi';
|
||||
$lang->content_font_size = 'İçerik Yazı Boyutu';
|
||||
$lang->about_component = 'Bileşen hakkında';
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ $lang->component_history = 'Cập nhật';
|
|||
$lang->component_description = 'Mô tả';
|
||||
$lang->component_extra_vars = 'Thông tin bổ xung';
|
||||
$lang->component_grant = 'Thiết lập quyền';
|
||||
$lang->content_style = 'Kiểu dáng của nội dung';
|
||||
$lang->content_font = 'Font chữ của nội dung';
|
||||
$lang->content_font_size = 'Cỡ chữ của nội dung';
|
||||
$lang->about_component = 'Thông tin Thành phần';
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ $lang->component_history = '更新日志';
|
|||
$lang->component_description = '说明';
|
||||
$lang->component_extra_vars = '变数设置';
|
||||
$lang->component_grant = '权限设置';
|
||||
$lang->content_style = '文档样式';
|
||||
$lang->content_font = '文档字体';
|
||||
$lang->content_font_size = '字体大小';
|
||||
$lang->about_component = '组件简介';
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ $lang->component_history = '更新紀錄';
|
|||
$lang->component_description = '說明';
|
||||
$lang->component_extra_vars = '變數設置';
|
||||
$lang->component_grant = '權限設置';
|
||||
$lang->content_style = '內容樣式';
|
||||
$lang->content_font = '內容字體';
|
||||
$lang->content_font_size = '字體大小';
|
||||
$lang->about_component = '組件簡介';
|
||||
|
|
|
|||
|
|
@ -1,3 +1,7 @@
|
|||
body.cke_editable { padding: 5px; background-color: #fff; }
|
||||
html.cke_panel_container, html.cke_panel_container body {
|
||||
background-color: #fff
|
||||
}
|
||||
p.editor_autosaved_message.autosave_message {display:none;background: #f6ffdb;padding:6px 10px;margin:0;line-height:1;}
|
||||
span.cke_combo__fontsize .cke_combo_button { width: 64px; }
|
||||
span.cke_combo__fontsize .cke_combo_text { width: 30px; }
|
||||
span.cke_combo__fontsize .cke_combo_button { width: 64px;}
|
||||
span.cke_combo__fontsize .cke_combo_text { width: 30px; }
|
||||
122
modules/editor/skins/ckeditor/css/default.less
Normal file
122
modules/editor/skins/ckeditor/css/default.less
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
@charset "UTF-8";
|
||||
/* Content Default Styles */
|
||||
.word_break(@wb) when (@wb = normal), (@wb = keep-all), (@wb = break-all) {
|
||||
word-break: @wb;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
.word_break(@wb) when (@wb = none) {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.cont_font(@ft) when (@ft = none) {
|
||||
}
|
||||
.cont_font(@ft) when not (@ft = none) {
|
||||
font-family: @content_font;
|
||||
}
|
||||
|
||||
.cont_fontsize(@fs) when (@fs = none) {
|
||||
}
|
||||
.cont_fontsize(@fs) when not (@fs = none) {
|
||||
font-size: @content_font_size;
|
||||
}
|
||||
|
||||
.cont_lineheight(@lh) when (@lh = none) {
|
||||
}
|
||||
.cont_lineheight(@lh) when not (@lh = none) {
|
||||
line-height: @content_line_height;
|
||||
}
|
||||
|
||||
.cont_linespacing(@ls) when (@ls = none) {
|
||||
}
|
||||
.cont_linespacing(@ls) when not (@ls = none) {
|
||||
margin: 0 0 @content_paragraph_spacing 0;
|
||||
}
|
||||
|
||||
.light_dark(@cs) when (@cs = moono-dark) {
|
||||
background-color: #494949;
|
||||
color: #fff;
|
||||
}
|
||||
.light_dark(@cs) when not (@cs = moono-dark) {
|
||||
background-color: #fff;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.light_dark_top(@cs) when (@cs = moono-dark) {
|
||||
border-bottom-color: #1b1b1b;
|
||||
}
|
||||
.light_dark_top(@cs) when not (@cs = moono-dark) {
|
||||
}
|
||||
|
||||
html {
|
||||
&.cke_panel_container, &.cke_panel_container body {
|
||||
background-color: #fff;
|
||||
}
|
||||
body.cke_editable {
|
||||
padding: 10px;
|
||||
.light_dark(@colorset);
|
||||
}
|
||||
}
|
||||
|
||||
p.editor_autosaved_message.autosave_message {
|
||||
display:none;
|
||||
background: #e0e0e0;
|
||||
padding: 10px;
|
||||
margin:0;
|
||||
line-height:1.2;
|
||||
}
|
||||
.cke_reset {
|
||||
span {
|
||||
&.cke_top {
|
||||
.light_dark_top(@colorset);
|
||||
a {
|
||||
&:hover, &:focus {
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.cke_combo__fontsize {
|
||||
.cke_combo_button {
|
||||
width: 64px;
|
||||
}
|
||||
.cke_combo_text {
|
||||
width: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.xe_content.editable, .rhymix_content.editable {
|
||||
.cont_font(@content_font);
|
||||
.cont_fontsize(@content_font_size);
|
||||
.cont_lineheight(@content_line_height);
|
||||
.word_break(@content_word_break);
|
||||
p {
|
||||
.cont_linespacing(@content_paragraph_spacing);
|
||||
.cont_lineheight(@content_line_height);
|
||||
span {
|
||||
.cont_lineheight(@content_line_height);
|
||||
}
|
||||
}
|
||||
img, video {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
}
|
||||
blockquote {
|
||||
padding: 2px 0;
|
||||
border-style: solid;
|
||||
border-color: #ccc;
|
||||
border-width: 0;
|
||||
border-left-width: 5px;
|
||||
padding-left: 20px;
|
||||
padding-right: 8px;
|
||||
|
||||
&:lang(ar), &:lang(arc), &:lang(dv), &:lang(ha), &:lang(he), &:lang(khw), &:lang(ks), &:lang(ku), &:lang(ps), &:lang(fa), &:lang(ur), &:lang(yi) {
|
||||
border-left-width: 0px;
|
||||
border-right-width: 5px;
|
||||
padding-left: 8px;
|
||||
padding-right: 20px;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,5 +1,14 @@
|
|||
<!-- css -->
|
||||
<load target="css/default.css" />
|
||||
{@ $css_var = new stdClass; }
|
||||
{@ $css_var->colorset = $colorset; }
|
||||
{@ $css_var->content_font = $content_font ? $content_font : 'none'; }
|
||||
{@ $css_var->content_font_size = $content_font_size ? $content_font_size : 'none';}
|
||||
{@ $css_var->content_line_height = $content_line_height ? $content_line_height: 'none';}
|
||||
{@ $css_var->content_word_break = $content_word_break ? $content_word_break : 'none';}
|
||||
{@ $css_var->content_paragraph_spacing = $content_paragraph_spacing ? $content_paragraph_spacing : 'none';}
|
||||
|
||||
{@ Context::set('css_var',$css_var);}
|
||||
<load target="css/default.less" vars="$css_var" />
|
||||
<load target="../../../../common/xeicon/xeicon.min.css" />
|
||||
|
||||
<!-- JS -->
|
||||
|
|
@ -12,22 +21,12 @@
|
|||
var auto_saved_msg = "{$lang->msg_auto_saved}";
|
||||
</script>
|
||||
|
||||
{@ $css_file_list = array(Context::getRequestUri() . $content_style_path . '/editor.css?' . date("YmdHis", @filemtime($content_style_path."/editor.css")))}
|
||||
{@ $css_file_list = array()}
|
||||
<!--@foreach($editor_additional_css as $additional_css_url)-->
|
||||
{@ $css_file_list[] = $additional_css_url}
|
||||
<!--@endforeach-->
|
||||
|
||||
{@ $css_content = null }
|
||||
<!--@if($content_font || $content_font_size)-->
|
||||
{@ $css_content .= ' .xe_content.editable { '}
|
||||
<block cond="$content_font">{@ $css_content .= 'font-family:' . $content_font . ';';}</block>
|
||||
<block cond="$content_font_size">{@ $css_content .= 'font-size:' . $content_font_size . ';';}</block>
|
||||
<block cond="$content_line_height">{@ $css_content .= 'line-height:' . $content_line_height . ';';}</block>
|
||||
<block cond="$content_word_break === 'none'">{@ $css_content .= 'white-space: nowrap;';}</block>
|
||||
<block cond="$content_word_break !== 'none'">{@ $css_content .= 'word-break:' . ($content_word_break ?: 'normal') . '; word-wrap: break-word;';}</block>
|
||||
{@ $css_content .= chr(125);}
|
||||
{@ $css_content .= '.xe_content.editable p { margin: 0 0 ' . ($content_paragraph_spacing ?: 0) . ' 0;' . chr(125);}
|
||||
<!--@endif-->
|
||||
|
||||
<!--@if($enable_autosave)-->
|
||||
<input type="hidden" name="_saved_doc_title" value="{escape($saved_doc->title)}" />
|
||||
|
|
@ -112,6 +111,14 @@ var auto_saved_msg = "{$lang->msg_auto_saved}";
|
|||
content_field: jQuery('[name={$editor_content_key_name}]')
|
||||
};
|
||||
|
||||
// Add style-sheet for the WYSIWYG
|
||||
$(document.getElementsByTagName('link')).each(function() {
|
||||
if ($(this).attr('rel') == 'stylesheet') {
|
||||
settings.ckeconfig.contentsCss.push($(this).attr('href'));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// Prevent removal of icon fonts and Google code.
|
||||
CKEDITOR.dtd.$removeEmpty.i = 0;
|
||||
CKEDITOR.dtd.$removeEmpty.ins = 0;
|
||||
|
|
|
|||
|
|
@ -1,41 +0,0 @@
|
|||
@charset "utf-8";
|
||||
/* NAVER (developers@xpressengine.com) */
|
||||
.xe_content.editable img{border:0;max-width:100%;}
|
||||
.xe_content.editable video{max-width:100%;}
|
||||
.xe_content.editable blockquote.q1,
|
||||
.xe_content.editable blockquote.q2,
|
||||
.xe_content.editable blockquote.q3,
|
||||
.xe_content.editable blockquote.q4,
|
||||
.xe_content.editable blockquote.q5,
|
||||
.xe_content.editable blockquote.q6,
|
||||
.xe_content.editable blockquote.q7{padding:10px;margin:0 15px;border:0;}
|
||||
.xe_content.editable blockquote.q1{padding:0 10px;border-left:2px solid #ccc}
|
||||
.xe_content.editable blockquote.q2{padding:0 10px;background:url(./img/bg_qmark.gif) no-repeat left top}
|
||||
.xe_content.editable blockquote.q3{border:1px solid #d9d9d9}
|
||||
.xe_content.editable blockquote.q4{border:1px solid #d9d9d9;background:#fbfbfb}
|
||||
.xe_content.editable blockquote.q5{border:2px solid #707070}
|
||||
.xe_content.editable blockquote.q6{border:1px dashed #707070}
|
||||
.xe_content.editable blockquote.q7{border:1px dashed #707070;background:#fbfbfb}
|
||||
.xe_content.editable table .xe_selected_cell{background-color:#d6e9ff}
|
||||
.xe_content.editable img.cke_iframe{background-color:#444}
|
||||
.xe_content.editable blockquote
|
||||
{
|
||||
padding: 2px 0;
|
||||
border-style: solid;
|
||||
border-color: #ccc;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
.xe_content.editable.cke_contents_ltr blockquote
|
||||
{
|
||||
padding-left: 20px;
|
||||
padding-right: 8px;
|
||||
border-left-width: 5px;
|
||||
}
|
||||
|
||||
.xe_content.editable.cke_contents_rtl blockquote
|
||||
{
|
||||
padding-left: 8px;
|
||||
padding-right: 20px;
|
||||
border-right-width: 5px;
|
||||
}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="editor.css" />
|
||||
<title>Rhymix</title>
|
||||
</head>
|
||||
<body class="xe_content editable">
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 59 B |
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">Rhymix 기본 서식</title>
|
||||
<title xml:lang="en">Rhymix Default</title>
|
||||
<version>1.9</version>
|
||||
<date>2016-04-27</date>
|
||||
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
|
||||
<name xml:lang="ko">NAVER</name>
|
||||
</author>
|
||||
</skin>
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
@charset "utf-8";
|
||||
/* NAVER (developers@xpressengine.com) */
|
||||
html { height: 100%; }
|
||||
body { min-height: 100%; }
|
||||
.xe_content blockquote.q1,
|
||||
.xe_content blockquote.q2,
|
||||
.xe_content blockquote.q3,
|
||||
.xe_content blockquote.q4,
|
||||
.xe_content blockquote.q5,
|
||||
.xe_content blockquote.q6,
|
||||
.xe_content blockquote.q7{padding:10px;margin:0 15px;border:0;}
|
||||
.xe_content blockquote.q1{padding:0 10px;border-left:2px solid #ccc}
|
||||
.xe_content blockquote.q2{padding:0 10px;background:url(./img/bg_qmark.gif) no-repeat left top}
|
||||
.xe_content blockquote.q3{border:1px solid #d9d9d9}
|
||||
.xe_content blockquote.q4{border:1px solid #d9d9d9;background:#fbfbfb}
|
||||
.xe_content blockquote.q5{border:2px solid #707070}
|
||||
.xe_content blockquote.q6{border:1px dashed #707070}
|
||||
.xe_content blockquote.q7{border:1px dashed #707070;background:#fbfbfb}
|
||||
.xe_content p{margin:0}
|
||||
|
||||
.xe_content blockquote
|
||||
{
|
||||
padding: 2px 0;
|
||||
border-style: solid;
|
||||
border-color: #ccc;
|
||||
border-width: 0;
|
||||
padding-left: 20px;
|
||||
padding-right: 8px;
|
||||
border-left-width: 5px;
|
||||
}
|
||||
|
|
@ -1 +0,0 @@
|
|||
style.css
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
@charset "utf-8";
|
||||
/* NAVER (developers@xpressengine.com) */
|
||||
html,body{height:100%}
|
||||
body{margin:0;padding:0}
|
||||
.xe_content{color:#000;}
|
||||
.xe_content img{border:0;max-width:100%;width:auto;height:auto}
|
||||
.xe_content blockquote.q1,
|
||||
.xe_content blockquote.q2,
|
||||
.xe_content blockquote.q3,
|
||||
.xe_content blockquote.q4,
|
||||
.xe_content blockquote.q5,
|
||||
.xe_content blockquote.q6,
|
||||
.xe_content blockquote.q7{padding:10px;margin:0 15px}
|
||||
.xe_content blockquote.q1{padding:0 10px;border-left:2px solid #ccc}
|
||||
.xe_content blockquote.q2{padding:0 10px;background:url(./img/bg_qmark.gif) no-repeat left top}
|
||||
.xe_content blockquote.q3{border:1px solid #d9d9d9}
|
||||
.xe_content blockquote.q4{border:1px solid #d9d9d9;background:#fbfbfb}
|
||||
.xe_content blockquote.q5{border:2px solid #707070}
|
||||
.xe_content blockquote.q6{border:1px dashed #707070}
|
||||
.xe_content blockquote.q7{border:1px dashed #707070;background:#fbfbfb}
|
||||
.xe_content table .xe_selected_cell{background-color:#d6e9ff}
|
||||
.xe_content p{margin:0}
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<link rel="stylesheet" href="editor.css" />
|
||||
<title>Rhymix</title>
|
||||
</head>
|
||||
<body class="xe_content editable">
|
||||
</body>
|
||||
</html>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 59 B |
|
|
@ -1,49 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<skin version="0.2">
|
||||
<title xml:lang="ko">XE 기본 서식</title>
|
||||
<title xml:lang="en">XE Default Form</title>
|
||||
<title xml:lang="zh-CN">XE默认样式</title>
|
||||
<title xml:lang="vi">XE Mặc định</title>
|
||||
<title xml:lang="jp">XEデフォルトスタイル</title>
|
||||
<title xml:lang="zh-TW">XE預設樣式</title>
|
||||
<title xml:lang="tr">XE Varsayılan Form</title>
|
||||
<description xml:lang="ko">
|
||||
XE 기본 문서 서식입니다.
|
||||
있는 그대로 표시가 될 뿐 편집/ 출력시 아무런 영향을 끼치지 않습니다.
|
||||
</description>
|
||||
<description xml:lang="en">
|
||||
XE's default document style.
|
||||
It displays as it is, and does not affect during editing/printing.
|
||||
</description>
|
||||
<description xml:lang="zh-CN">
|
||||
XE默认样式。
|
||||
主题显示及编辑不会受到任何影响,即原样输出。
|
||||
</description>
|
||||
<description xml:lang="zh-TW">
|
||||
XE預設樣式。
|
||||
主題顯示和編輯不會受到影響。
|
||||
</description>
|
||||
<description xml:lang="jp">
|
||||
XEの基本ドキュメント書式です。
|
||||
そのまま表示されるだけで、編集・出力には影響しません。
|
||||
</description>
|
||||
<description xml:lang="tr">
|
||||
XE varsayılan belge tarzı.
|
||||
Olduğu gibi gösterir, düzenlemeye / yazdırmaya etki etmez.
|
||||
</description>
|
||||
<description xml:lang="vi">
|
||||
Trang mẫu mặc định của XE.
|
||||
Nó sẽ hiển thị trong phần sửa đổi bài viết và không ảnh hưởng đến bất cứ chức năng nào cả.
|
||||
</description>
|
||||
<version>1.7</version>
|
||||
<date>2013-11-27</date>
|
||||
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
|
||||
<name xml:lang="ko">NAVER</name>
|
||||
<name xml:lang="zh-CN">NAVER</name>
|
||||
<name xml:lang="zh-TW">NAVER</name>
|
||||
<name xml:lang="jp">NAVER</name>
|
||||
<name xml:lang="en">NAVER</name>
|
||||
<name xml:lang="vi">NAVER</name>
|
||||
<name xml:lang="tr">NAVER</name>
|
||||
</author>
|
||||
</skin>
|
||||
|
|
@ -1,19 +0,0 @@
|
|||
@charset "utf-8";
|
||||
/* NAVER (developers@xpressengine.com) */
|
||||
.xe_content{color:#000;}
|
||||
.xe_content blockquote.q1,
|
||||
.xe_content blockquote.q2,
|
||||
.xe_content blockquote.q3,
|
||||
.xe_content blockquote.q4,
|
||||
.xe_content blockquote.q5,
|
||||
.xe_content blockquote.q6,
|
||||
.xe_content blockquote.q7{padding:10px;margin:0 15px}
|
||||
.xe_content blockquote.q1{padding:0 10px;border-left:2px solid #ccc}
|
||||
.xe_content blockquote.q2{padding:0 10px;background:url(./img/bg_qmark.gif) no-repeat left top}
|
||||
.xe_content blockquote.q3{border:1px solid #d9d9d9}
|
||||
.xe_content blockquote.q4{border:1px solid #d9d9d9;background:#fbfbfb}
|
||||
.xe_content blockquote.q5{border:2px solid #707070}
|
||||
.xe_content blockquote.q6{border:1px dashed #707070}
|
||||
.xe_content blockquote.q7{border:1px dashed #707070;background:#fbfbfb}
|
||||
.xe_content p{margin:0}
|
||||
|
||||
|
|
@ -1 +0,0 @@
|
|||
style.css
|
||||
|
|
@ -72,16 +72,6 @@
|
|||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->guide_choose_text_formatting}</label>
|
||||
<div class="x_controls">
|
||||
<!--@foreach($content_style_list as $key => $val)-->
|
||||
<label class="x_inline">
|
||||
<input type="radio" name="content_style" value="{$key}" id="content_style_{$key}" checked="checked"|cond="$key==$editor_config->content_style||!$editor_config->content_style && $key=='ckeditor_light'"> {$val->title}
|
||||
</label>
|
||||
<!--@end-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h1>{$lang->comment_editor}</h1>
|
||||
|
||||
|
|
@ -124,16 +114,6 @@
|
|||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="x_control-group">
|
||||
<label class="x_control-label">{$lang->guide_choose_comment_text_formatting}</label>
|
||||
<div class="x_controls">
|
||||
<!--@foreach($content_style_list as $key => $val)-->
|
||||
<label class="x_inline">
|
||||
<input type="radio" name="comment_content_style" value="{$key}" id="comment_content_style_{$key}" checked="checked"|cond="$key==$editor_config->comment_content_style||!$editor_config->comment_content_style && $key=='ckeditor_light'"> {$val->title}
|
||||
</label>
|
||||
<!--@end-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h1>{$lang->editor_common_settings}</h1>
|
||||
|
||||
|
|
|
|||
|
|
@ -47,19 +47,6 @@
|
|||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="editor_skin">
|
||||
<th scope="row" style="text-align:right">{$lang->content_style}</th>
|
||||
<td>
|
||||
<select name="content_style">
|
||||
<option loop="$content_style_list => $key, $val" value="{$key}" selected="selected"|cond="$key==$editor_config->content_style||!$editor_config->content_style&&$key=='default'">{$val->title}</option>
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<select name="comment_content_style">
|
||||
<option loop="$content_style_list => $key, $val" value="{$key}" selected="selected"|cond="$key==$editor_config->comment_content_style||!$editor_config->comment_content_style&&$key=='default'">{$val->title}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="editor_skin">
|
||||
<th scope="row" style="text-align:right">{$lang->editor_height}</th>
|
||||
<td>
|
||||
|
|
|
|||
|
|
@ -280,7 +280,8 @@ class fileModel extends file
|
|||
*/
|
||||
public static function getFileConfig($module_srl = null)
|
||||
{
|
||||
$config = clone ModuleModel::getModuleConfig('file');
|
||||
$config = ModuleModel::getModuleConfig('file');
|
||||
$config = is_object($config) ? clone $config : new stdClass();
|
||||
if($module_srl)
|
||||
{
|
||||
$module_config = ModuleModel::getModulePartConfig('file', $module_srl);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
</ul>
|
||||
<div id="footer">
|
||||
Rhymix is a fork of the <a href="https://www.xpressengine.com" target="_blank">XpressEngine</a> CMS<br />
|
||||
with additional patches by members of the <a href="https://www.xetown.com" target="_blank">XETOWN</a> community.<br />
|
||||
with additional patches by members of the <a href="https://xetown.com" target="_blank">XETOWN</a> community.<br />
|
||||
Please see our <a href="https://github.com/rhymix/rhymix" target="_blank">GitHub repository</a> for a full timeline of patches and their authors.
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<?php
|
||||
/* Copyright (C) XETOWN CMS <https://www.xetown.com> */
|
||||
/* Copyright (C) Rhymix <https://rhymix.org> */
|
||||
/**
|
||||
* The view class of the integration_search module
|
||||
*
|
||||
* @author MinSoo Kim <misol.kr@gmail.com>
|
||||
* @author Rhymix Developers and Contributors <devops@rhymix.org>
|
||||
*/
|
||||
|
||||
class integration_searchMobile extends integration_searchView
|
||||
|
|
|
|||
|
|
@ -303,6 +303,7 @@ class ncenterlite extends ModuleObject
|
|||
public static function getSmsHandler()
|
||||
{
|
||||
static $oSmsHandler = null;
|
||||
$config = getModel('ncenterlite')->getConfig();
|
||||
|
||||
if($oSmsHandler === null)
|
||||
{
|
||||
|
|
@ -314,6 +315,11 @@ class ncenterlite extends ModuleObject
|
|||
return $oSmsHandler;
|
||||
}
|
||||
|
||||
if($config->variable_name === '#')
|
||||
{
|
||||
return $oSmsHandler;
|
||||
}
|
||||
|
||||
$variable_name = array();
|
||||
$member_config = getModel('member')->getMemberConfig();
|
||||
foreach($member_config->signupForm as $value)
|
||||
|
|
|
|||
|
|
@ -1483,8 +1483,7 @@ class ncenterliteController extends ncenterlite
|
|||
return false;
|
||||
}
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->member_srl == $args->member_srl)
|
||||
if($this->user->member_srl == $args->member_srl)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,10 +17,14 @@ class SMSTest extends \Codeception\TestCase\Test
|
|||
$drivers = Rhymix\Framework\SMS::getSupportedDrivers();
|
||||
$this->assertTrue(isset($drivers['dummy']));
|
||||
$this->assertTrue(isset($drivers['coolsms']));
|
||||
$this->assertTrue(isset($drivers['solapi']));
|
||||
$this->assertEquals('Dummy', $drivers['dummy']['name']);
|
||||
$this->assertTrue(in_array('api_key', $drivers['coolsms']['required']));
|
||||
$this->assertTrue(in_array('api_key', $drivers['solapi']['required']));
|
||||
$this->assertTrue($drivers['coolsms']['api_spec']['mms_supported']);
|
||||
$this->assertTrue($drivers['coolsms']['api_spec']['delay_supported']);
|
||||
$this->assertTrue($drivers['solapi']['api_spec']['mms_supported']);
|
||||
$this->assertTrue($drivers['solapi']['api_spec']['delay_supported']);
|
||||
}
|
||||
|
||||
public function testSenderAndRecipients()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue