mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-06 02:01:40 +09:00
issue 2662 comment, communication
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12239 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
7eaa7bb8f9
commit
d9f44e9d48
9 changed files with 1607 additions and 1476 deletions
|
|
@ -1,450 +1,506 @@
|
|||
<?php
|
||||
/**
|
||||
* commentItem class
|
||||
* comment Object
|
||||
*
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @package /modules/comment
|
||||
* @version 0.1
|
||||
*/
|
||||
class commentItem extends Object
|
||||
{
|
||||
/**
|
||||
* commentItem class
|
||||
* comment Object
|
||||
*
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @package /modules/comment
|
||||
* @version 0.1
|
||||
* comment number
|
||||
* @var int
|
||||
*/
|
||||
class commentItem extends Object {
|
||||
/**
|
||||
* comment number
|
||||
* @var int
|
||||
*/
|
||||
var $comment_srl = 0;
|
||||
/**
|
||||
* Get the column list int the table
|
||||
* @var array
|
||||
*/
|
||||
var $columnList = array();
|
||||
var $comment_srl = 0;
|
||||
/**
|
||||
* Get the column list int the table
|
||||
* @var array
|
||||
*/
|
||||
var $columnList = array();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
* @param int $comment_srl
|
||||
* @param array $columnList
|
||||
* @return void
|
||||
*/
|
||||
function commentItem($comment_srl = 0, $columnList = array()) {
|
||||
$this->comment_srl = $comment_srl;
|
||||
$this->columnList = $columnList;
|
||||
$this->_loadFromDB();
|
||||
}
|
||||
/**
|
||||
* Constructor
|
||||
* @param int $comment_srl
|
||||
* @param array $columnList
|
||||
* @return void
|
||||
*/
|
||||
function commentItem($comment_srl = 0, $columnList = array())
|
||||
{
|
||||
$this->comment_srl = $comment_srl;
|
||||
$this->columnList = $columnList;
|
||||
$this->_loadFromDB();
|
||||
}
|
||||
|
||||
function setComment($comment_srl) {
|
||||
$this->comment_srl = $comment_srl;
|
||||
$this->_loadFromDB();
|
||||
}
|
||||
function setComment($comment_srl)
|
||||
{
|
||||
$this->comment_srl = $comment_srl;
|
||||
$this->_loadFromDB();
|
||||
}
|
||||
|
||||
/**
|
||||
* Load comment data from DB and set to commentItem object
|
||||
* @return void
|
||||
*/
|
||||
function _loadFromDB() {
|
||||
if(!$this->comment_srl) return;
|
||||
/**
|
||||
* Load comment data from DB and set to commentItem object
|
||||
* @return void
|
||||
*/
|
||||
function _loadFromDB()
|
||||
{
|
||||
if(!$this->comment_srl) return;
|
||||
|
||||
$args->comment_srl = $this->comment_srl;
|
||||
$output = executeQuery('comment.getComment', $args, $this->columnList);
|
||||
$args->comment_srl = $this->comment_srl;
|
||||
$output = executeQuery('comment.getComment', $args, $this->columnList);
|
||||
|
||||
$this->setAttribute($output->data);
|
||||
}
|
||||
$this->setAttribute($output->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Comment attribute set to Object object
|
||||
* @return void
|
||||
*/
|
||||
function setAttribute($attribute) {
|
||||
if(!$attribute->comment_srl) {
|
||||
$this->comment_srl = null;
|
||||
return;
|
||||
}
|
||||
$this->comment_srl = $attribute->comment_srl;
|
||||
$this->adds($attribute);
|
||||
// define vars on the object for backward compatibility of skins
|
||||
if(count($attribute)) foreach($attribute as $key => $val) $this->{$key} = $val;
|
||||
}
|
||||
/**
|
||||
* Comment attribute set to Object object
|
||||
* @return void
|
||||
*/
|
||||
function setAttribute($attribute)
|
||||
{
|
||||
if(!$attribute->comment_srl)
|
||||
{
|
||||
$this->comment_srl = null;
|
||||
return;
|
||||
}
|
||||
$this->comment_srl = $attribute->comment_srl;
|
||||
$this->adds($attribute);
|
||||
// define vars on the object for backward compatibility of skins
|
||||
if(count($attribute)) foreach($attribute as $key => $val) $this->{$key} = $val;
|
||||
}
|
||||
|
||||
function isExists() {
|
||||
return $this->comment_srl ? true : false;
|
||||
}
|
||||
function isExists()
|
||||
{
|
||||
return $this->comment_srl ? true : false;
|
||||
}
|
||||
|
||||
function isGranted() {
|
||||
if($_SESSION['own_comment'][$this->comment_srl]) return true;
|
||||
function isGranted()
|
||||
{
|
||||
if($_SESSION['own_comment'][$this->comment_srl]) return true;
|
||||
|
||||
if(!Context::get('is_logged')) return false;
|
||||
if(!Context::get('is_logged')) return false;
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin == 'Y') return true;
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->is_admin == 'Y') return true;
|
||||
|
||||
$grant = Context::get('grant');
|
||||
if($grant->manager) return true;
|
||||
$grant = Context::get('grant');
|
||||
if($grant->manager) return true;
|
||||
|
||||
if($this->get('member_srl') && ($this->get('member_srl') == $logged_info->member_srl || $this->get('member_srl')*-1 == $logged_info->member_srl)) return true;
|
||||
if($this->get('member_srl') && ($this->get('member_srl') == $logged_info->member_srl || $this->get('member_srl')*-1 == $logged_info->member_srl)) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function setGrant() {
|
||||
$_SESSION['own_comment'][$this->comment_srl] = true;
|
||||
$this->is_granted = true;
|
||||
}
|
||||
function setGrant()
|
||||
{
|
||||
$_SESSION['own_comment'][$this->comment_srl] = true;
|
||||
$this->is_granted = true;
|
||||
}
|
||||
|
||||
function setAccessible() {
|
||||
$_SESSION['accessibled_comment'][$this->comment_srl] = true;
|
||||
}
|
||||
function setAccessible()
|
||||
{
|
||||
$_SESSION['accessibled_comment'][$this->comment_srl] = true;
|
||||
}
|
||||
|
||||
function isEditable() {
|
||||
if($this->isGranted() || !$this->get('member_srl')) return true;
|
||||
return false;
|
||||
}
|
||||
function isEditable()
|
||||
{
|
||||
if($this->isGranted() || !$this->get('member_srl')) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
function isSecret() {
|
||||
return $this->get('is_secret') == 'Y' ? true : false;
|
||||
}
|
||||
function isSecret()
|
||||
{
|
||||
return $this->get('is_secret') == 'Y' ? true : false;
|
||||
}
|
||||
|
||||
function isAccessible() {
|
||||
if($_SESSION['accessibled_comment'][$this->comment_srl]) return true;
|
||||
function isAccessible()
|
||||
{
|
||||
if($_SESSION['accessibled_comment'][$this->comment_srl]) return true;
|
||||
|
||||
if($this->isGranted() || !$this->isSecret()) {
|
||||
$this->setAccessible();
|
||||
return true;
|
||||
}
|
||||
if($this->isGranted() || !$this->isSecret())
|
||||
{
|
||||
$this->setAccessible();
|
||||
return true;
|
||||
}
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument($this->get('document_srl'));
|
||||
if($oDocument->isGranted()) {
|
||||
$this->setAccessible();
|
||||
return true;
|
||||
}
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument($this->get('document_srl'));
|
||||
if($oDocument->isGranted())
|
||||
{
|
||||
$this->setAccessible();
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
function useNotify() {
|
||||
return $this->get('notify_message')=='Y' ? true : false;
|
||||
}
|
||||
function useNotify()
|
||||
{
|
||||
return $this->get('notify_message')=='Y' ? true : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Notify to comment owner
|
||||
* @return void
|
||||
*/
|
||||
function notify($type, $content) {
|
||||
// return if not useNotify
|
||||
if(!$this->useNotify()) return;
|
||||
// pass if the author is not logged-in user
|
||||
if(!$this->get('member_srl')) return;
|
||||
// return if the currently logged-in user is an author of the comment.
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->member_srl == $this->get('member_srl')) return;
|
||||
// get where the comment belongs to
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument($this->get('document_srl'));
|
||||
// Variables
|
||||
if($type) $title = "[".$type."] ";
|
||||
$title .= cut_str(strip_tags($content), 30, '...');
|
||||
$content = sprintf('%s<br /><br />from : <a href="%s#comment_%s" target="_blank">%s</a>',$content, getFullUrl('','document_srl',$this->get('document_srl')), $this->get('comment_srl'), getFullUrl('','document_srl',$this->get('document_srl')));
|
||||
$receiver_srl = $this->get('member_srl');
|
||||
$sender_member_srl = $logged_info->member_srl;
|
||||
// send a message
|
||||
$oCommunicationController = &getController('communication');
|
||||
$oCommunicationController->sendMessage($sender_member_srl, $receiver_srl, $title, $content, false);
|
||||
}
|
||||
/**
|
||||
* Notify to comment owner
|
||||
* @return void
|
||||
*/
|
||||
function notify($type, $content)
|
||||
{
|
||||
// return if not useNotify
|
||||
if(!$this->useNotify()) return;
|
||||
// pass if the author is not logged-in user
|
||||
if(!$this->get('member_srl')) return;
|
||||
// return if the currently logged-in user is an author of the comment.
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($logged_info->member_srl == $this->get('member_srl')) return;
|
||||
// get where the comment belongs to
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oDocument = $oDocumentModel->getDocument($this->get('document_srl'));
|
||||
// Variables
|
||||
if($type) $title = "[".$type."] ";
|
||||
$title .= cut_str(strip_tags($content), 30, '...');
|
||||
$content = sprintf('%s<br /><br />from : <a href="%s#comment_%s" target="_blank">%s</a>',$content, getFullUrl('','document_srl',$this->get('document_srl')), $this->get('comment_srl'), getFullUrl('','document_srl',$this->get('document_srl')));
|
||||
$receiver_srl = $this->get('member_srl');
|
||||
$sender_member_srl = $logged_info->member_srl;
|
||||
// send a message
|
||||
$oCommunicationController = &getController('communication');
|
||||
$oCommunicationController->sendMessage($sender_member_srl, $receiver_srl, $title, $content, false);
|
||||
}
|
||||
|
||||
function getIpAddress() {
|
||||
if($this->isGranted()) return $this->get('ipaddress');
|
||||
return preg_replace('/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/','*.$2.$3.$4', $this->get('ipaddress'));
|
||||
}
|
||||
function getIpAddress()
|
||||
{
|
||||
if($this->isGranted()) return $this->get('ipaddress');
|
||||
return preg_replace('/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/','*.$2.$3.$4', $this->get('ipaddress'));
|
||||
}
|
||||
|
||||
function isExistsHomepage() {
|
||||
if(trim($this->get('homepage'))) return true;
|
||||
return false;
|
||||
}
|
||||
function isExistsHomepage()
|
||||
{
|
||||
if(trim($this->get('homepage'))) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
function getHomepageUrl() {
|
||||
$url = trim($this->get('homepage'));
|
||||
if(!$url) return;
|
||||
function getHomepageUrl()
|
||||
{
|
||||
$url = trim($this->get('homepage'));
|
||||
if(!$url) return;
|
||||
|
||||
if(!preg_match("/^http:\/\//i",$url)) $url = "http://".$url;
|
||||
if(!preg_match("/^http:\/\//i",$url)) $url = "http://".$url;
|
||||
|
||||
return $url;
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
|
||||
function getMemberSrl() {
|
||||
return $this->get('member_srl');
|
||||
}
|
||||
function getMemberSrl()
|
||||
{
|
||||
return $this->get('member_srl');
|
||||
}
|
||||
|
||||
function getUserID() {
|
||||
return htmlspecialchars($this->get('user_id'));
|
||||
}
|
||||
function getUserID()
|
||||
{
|
||||
return htmlspecialchars($this->get('user_id'));
|
||||
}
|
||||
|
||||
function getUserName() {
|
||||
return htmlspecialchars($this->get('user_name'));
|
||||
}
|
||||
function getUserName()
|
||||
{
|
||||
return htmlspecialchars($this->get('user_name'));
|
||||
}
|
||||
|
||||
function getNickName() {
|
||||
return htmlspecialchars($this->get('nick_name'));
|
||||
}
|
||||
function getNickName()
|
||||
{
|
||||
return htmlspecialchars($this->get('nick_name'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Return content with htmlspecialchars
|
||||
* @return string
|
||||
*/
|
||||
function getContentText($strlen = 0) {
|
||||
if($this->isSecret() && !$this->isAccessible()) return Context::getLang('msg_is_secret');
|
||||
/**
|
||||
* Return content with htmlspecialchars
|
||||
* @return string
|
||||
*/
|
||||
function getContentText($strlen = 0)
|
||||
{
|
||||
if($this->isSecret() && !$this->isAccessible()) return Context::getLang('msg_is_secret');
|
||||
|
||||
$content = $this->get('content');
|
||||
$content = $this->get('content');
|
||||
|
||||
if($strlen) return cut_str(strip_tags($content),$strlen,'...');
|
||||
if($strlen) return cut_str(strip_tags($content),$strlen,'...');
|
||||
|
||||
return htmlspecialchars($content);
|
||||
}
|
||||
return htmlspecialchars($content);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return content after filter
|
||||
* @return string
|
||||
*/
|
||||
function getContent($add_popup_menu = true, $add_content_info = true, $add_xe_content_class = true) {
|
||||
if($this->isSecret() && !$this->isAccessible()) return Context::getLang('msg_is_secret');
|
||||
/**
|
||||
* Return content after filter
|
||||
* @return string
|
||||
*/
|
||||
function getContent($add_popup_menu = true, $add_content_info = true, $add_xe_content_class = true)
|
||||
{
|
||||
if($this->isSecret() && !$this->isAccessible()) return Context::getLang('msg_is_secret');
|
||||
|
||||
$content = $this->get('content');
|
||||
stripEmbedTagForAdmin($content, $this->get('member_srl'));
|
||||
// when displaying the comment on the pop-up menu
|
||||
if($add_popup_menu && Context::get('is_logged') ) {
|
||||
$content = sprintf(
|
||||
'%s<div class="comment_popup_menu"><a href="#popup_menu_area" class="comment_%d" onclick="return false">%s</a></div>',
|
||||
$content,
|
||||
$this->comment_srl, Context::getLang('cmd_comment_do')
|
||||
);
|
||||
}
|
||||
// if additional information which can access contents is set
|
||||
if($add_content_info) {
|
||||
$memberSrl = $this->get('member_srl');
|
||||
if($memberSrl < 0)
|
||||
$content = $this->get('content');
|
||||
stripEmbedTagForAdmin($content, $this->get('member_srl'));
|
||||
// when displaying the comment on the pop-up menu
|
||||
if($add_popup_menu && Context::get('is_logged') )
|
||||
{
|
||||
$content = sprintf(
|
||||
'%s<div class="comment_popup_menu"><a href="#popup_menu_area" class="comment_%d" onclick="return false">%s</a></div>',
|
||||
$content,
|
||||
$this->comment_srl, Context::getLang('cmd_comment_do')
|
||||
);
|
||||
}
|
||||
// if additional information which can access contents is set
|
||||
if($add_content_info)
|
||||
{
|
||||
$memberSrl = $this->get('member_srl');
|
||||
if($memberSrl < 0)
|
||||
{
|
||||
$memberSrl = 0;
|
||||
}
|
||||
$content = sprintf(
|
||||
'<!--BeforeComment(%d,%d)--><div class="comment_%d_%d xe_content">%s</div><!--AfterComment(%d,%d)-->',
|
||||
$this->comment_srl, $memberSrl,
|
||||
$this->comment_srl, $memberSrl,
|
||||
$content,
|
||||
$this->comment_srl, $memberSrl
|
||||
);
|
||||
// xe_content class name should be specified although content access is not necessary.
|
||||
}
|
||||
else
|
||||
{
|
||||
if($add_xe_content_class) $content = sprintf('<div class="xe_content">%s</div>', $content);
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return summary content
|
||||
* @return string
|
||||
*/
|
||||
function getSummary($str_size = 50, $tail = '...')
|
||||
{
|
||||
$content = $this->getContent(false, false);
|
||||
// for newline, insert a blank.
|
||||
$content = preg_replace('!(<br[\s]*/{0,1}>[\s]*)+!is', ' ', $content);
|
||||
// replace tags such as </p> , </div> , </li> by blanks.
|
||||
$content = str_replace(array('</p>', '</div>', '</li>'), ' ', $content);
|
||||
// Remove tags
|
||||
$content = preg_replace('!<([^>]*?)>!is','', $content);
|
||||
// replace < , >, "
|
||||
$content = str_replace(array('<','>','"',' '), array('<','>','"',' '), $content);
|
||||
// delete a series of blanks
|
||||
$content = preg_replace('/ ( +)/is', ' ', $content);
|
||||
// truncate strings
|
||||
$content = trim(cut_str($content, $str_size, $tail));
|
||||
// restore >, <, , "\
|
||||
$content = str_replace(array('<','>','"'),array('<','>','"'), $content);
|
||||
|
||||
return $content;
|
||||
}
|
||||
|
||||
function getRegdate($format = 'Y.m.d H:i:s')
|
||||
{
|
||||
return zdate($this->get('regdate'), $format);
|
||||
}
|
||||
|
||||
function getRegdateTime()
|
||||
{
|
||||
$regdate = $this->get('regdate');
|
||||
$year = substr($regdate,0,4);
|
||||
$month = substr($regdate,4,2);
|
||||
$day = substr($regdate,6,2);
|
||||
$hour = substr($regdate,8,2);
|
||||
$min = substr($regdate,10,2);
|
||||
$sec = substr($regdate,12,2);
|
||||
return mktime($hour,$min,$sec,$month,$day,$year);
|
||||
}
|
||||
|
||||
function getRegdateGM()
|
||||
{
|
||||
return $this->getRegdate('D, d M Y H:i:s').' '.$GLOBALS['_time_zone'];
|
||||
}
|
||||
|
||||
function getUpdate($format = 'Y.m.d H:i:s')
|
||||
{
|
||||
return zdate($this->get('last_update'), $format);
|
||||
}
|
||||
|
||||
function getPermanentUrl()
|
||||
{
|
||||
return getFullUrl('','document_srl',$this->get('document_srl')).'#comment_'.$this->get('comment_srl');
|
||||
}
|
||||
|
||||
function getUpdateTime()
|
||||
{
|
||||
$year = substr($this->get('last_update'),0,4);
|
||||
$month = substr($this->get('last_update'),4,2);
|
||||
$day = substr($this->get('last_update'),6,2);
|
||||
$hour = substr($this->get('last_update'),8,2);
|
||||
$min = substr($this->get('last_update'),10,2);
|
||||
$sec = substr($this->get('last_update'),12,2);
|
||||
return mktime($hour,$min,$sec,$month,$day,$year);
|
||||
}
|
||||
|
||||
function getUpdateGM()
|
||||
{
|
||||
return gmdate("D, d M Y H:i:s", $this->getUpdateTime());
|
||||
}
|
||||
|
||||
function hasUploadedFiles()
|
||||
{
|
||||
if(($this->isSecret() && !$this->isAccessible()) && !$this->isGranted()) return false;
|
||||
return $this->get('uploaded_count')? true : false;
|
||||
}
|
||||
|
||||
function getUploadedFiles()
|
||||
{
|
||||
if(($this->isSecret() && !$this->isAccessible()) && !$this->isGranted()) return;
|
||||
if(!$this->get('uploaded_count')) return;
|
||||
|
||||
$oFileModel = &getModel('file');
|
||||
$file_list = $oFileModel->getFiles($this->comment_srl, $is_admin);
|
||||
return $file_list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the editor html
|
||||
* @return string
|
||||
*/
|
||||
function getEditor()
|
||||
{
|
||||
$module_srl = $this->get('module_srl');
|
||||
if(!$module_srl) $module_srl = Context::get('module_srl');
|
||||
$oEditorModel = &getModel('editor');
|
||||
return $oEditorModel->getModuleEditor('comment', $module_srl, $this->comment_srl, 'comment_srl', 'content');
|
||||
}
|
||||
|
||||
/**
|
||||
* Return author's profile image
|
||||
* @return object
|
||||
*/
|
||||
function getProfileImage()
|
||||
{
|
||||
if(!$this->isExists() || !$this->get('member_srl')) return;
|
||||
$oMemberModel = &getModel('member');
|
||||
$profile_info = $oMemberModel->getProfileImage($this->get('member_srl'));
|
||||
if(!$profile_info) return;
|
||||
|
||||
return $profile_info->src;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return author's signiture
|
||||
* @return string
|
||||
*/
|
||||
function getSignature()
|
||||
{
|
||||
// pass if the posting not exists.
|
||||
if(!$this->isExists() || !$this->get('member_srl')) return;
|
||||
// get the signiture information
|
||||
$oMemberModel = &getModel('member');
|
||||
$signature = $oMemberModel->getSignature($this->get('member_srl'));
|
||||
// check if max height of the signiture is specified on the member module
|
||||
if(!isset($GLOBALS['__member_signature_max_height']))
|
||||
{
|
||||
$oModuleModel = &getModel('module');
|
||||
$member_config = $oModuleModel->getModuleConfig('member');
|
||||
$GLOBALS['__member_signature_max_height'] = $member_config->signature_max_height;
|
||||
}
|
||||
$max_signature_height = $GLOBALS['__member_signature_max_height'];
|
||||
if($max_signature_height) $signature = sprintf('<div style="max-height:%dpx;overflow:auto;overflow-x:hidden;height:expression(this.scrollHeight > %d ? \'%dpx\': \'auto\')">%s</div>', $max_signature_height, $max_signature_height, $max_signature_height, $signature);
|
||||
|
||||
return $signature;
|
||||
}
|
||||
|
||||
function thumbnailExists($width = 80, $height = 0, $type = '')
|
||||
{
|
||||
if(!$this->comment_srl) return false;
|
||||
if(!$this->getThumbnail($width, $height, $type)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
function getThumbnail($width = 80, $height = 0, $thumbnail_type = '')
|
||||
{
|
||||
// return false if no doc exists
|
||||
if(!$this->comment_srl) return;
|
||||
// If signiture height setting is omitted, create a square
|
||||
if(!$height) $height = $width;
|
||||
// return false if neigher attached file nor image;
|
||||
if(!$this->hasUploadedFiles() && !preg_match("!<img!is", $this->get('content'))) return;
|
||||
// get thumbail generation info on the doc module configuration.
|
||||
if(!in_array($thumbnail_type, array('crop','ratio'))) $thumbnail_type = 'crop';
|
||||
// Define thumbnail information
|
||||
$thumbnail_path = sprintf('files/cache/thumbnails/%s',getNumberingPath($this->comment_srl, 3));
|
||||
$thumbnail_file = sprintf('%s%dx%d.%s.jpg', $thumbnail_path, $width, $height, $thumbnail_type);
|
||||
$thumbnail_url = Context::getRequestUri().$thumbnail_file;
|
||||
// return false if a size of existing thumbnail file is 0. otherwise return the file path
|
||||
if(file_exists($thumbnail_file))
|
||||
{
|
||||
if(filesize($thumbnail_file)<1) return false;
|
||||
else return $thumbnail_url;
|
||||
}
|
||||
// Target file
|
||||
$source_file = null;
|
||||
$is_tmp_file = false;
|
||||
// find an image file among attached files
|
||||
if($this->hasUploadedFiles())
|
||||
{
|
||||
$file_list = $this->getUploadedFiles();
|
||||
if(count($file_list))
|
||||
{
|
||||
foreach($file_list as $file)
|
||||
{
|
||||
$memberSrl = 0;
|
||||
if($file->direct_download!='Y') continue;
|
||||
if(!preg_match("/\.(jpg|png|jpeg|gif|bmp)$/i",$file->source_filename)) continue;
|
||||
|
||||
$source_file = $file->uploaded_filename;
|
||||
if(!file_exists($source_file)) $source_file = null;
|
||||
else break;
|
||||
}
|
||||
$content = sprintf(
|
||||
'<!--BeforeComment(%d,%d)--><div class="comment_%d_%d xe_content">%s</div><!--AfterComment(%d,%d)-->',
|
||||
$this->comment_srl, $memberSrl,
|
||||
$this->comment_srl, $memberSrl,
|
||||
$content,
|
||||
$this->comment_srl, $memberSrl
|
||||
);
|
||||
// xe_content class name should be specified although content access is not necessary.
|
||||
} else {
|
||||
if($add_xe_content_class) $content = sprintf('<div class="xe_content">%s</div>', $content);
|
||||
}
|
||||
}
|
||||
}
|
||||
// get an image file from the doc content if no file attached.
|
||||
if(!$source_file)
|
||||
{
|
||||
$content = $this->get('content');
|
||||
$target_src = null;
|
||||
preg_match_all("!src=(\"|')([^\"' ]*?)(\"|')!is", $content, $matches, PREG_SET_ORDER);
|
||||
$cnt = count($matches);
|
||||
for($i=0;$i<$cnt;$i++)
|
||||
{
|
||||
$target_src = $matches[$i][2];
|
||||
if(preg_match('/\/(common|modules|widgets|addons|layouts)\//i', $target_src)) continue;
|
||||
else
|
||||
{
|
||||
if(!preg_match('/^(http|https):\/\//i',$target_src)) $target_src = Context::getRequestUri().$target_src;
|
||||
|
||||
return $content;
|
||||
}
|
||||
$tmp_file = sprintf('./files/cache/tmp/%d', md5(rand(111111,999999).$this->comment_srl));
|
||||
if(!is_dir('./files/cache/tmp')) FileHandler::makeDir('./files/cache/tmp');
|
||||
FileHandler::getRemoteFile($target_src, $tmp_file);
|
||||
if(!file_exists($tmp_file)) continue;
|
||||
else
|
||||
{
|
||||
list($_w, $_h, $_t, $_a) = @getimagesize($tmp_file);
|
||||
if($_w<$width || $_h<$height) continue;
|
||||
|
||||
/**
|
||||
* Return summary content
|
||||
* @return string
|
||||
*/
|
||||
function getSummary($str_size = 50, $tail = '...') {
|
||||
$content = $this->getContent(false, false);
|
||||
// for newline, insert a blank.
|
||||
$content = preg_replace('!(<br[\s]*/{0,1}>[\s]*)+!is', ' ', $content);
|
||||
// replace tags such as </p> , </div> , </li> by blanks.
|
||||
$content = str_replace(array('</p>', '</div>', '</li>'), ' ', $content);
|
||||
// Remove tags
|
||||
$content = preg_replace('!<([^>]*?)>!is','', $content);
|
||||
// replace < , >, "
|
||||
$content = str_replace(array('<','>','"',' '), array('<','>','"',' '), $content);
|
||||
// delete a series of blanks
|
||||
$content = preg_replace('/ ( +)/is', ' ', $content);
|
||||
// truncate strings
|
||||
$content = trim(cut_str($content, $str_size, $tail));
|
||||
// restore >, <, , "\
|
||||
$content = str_replace(array('<','>','"'),array('<','>','"'), $content);
|
||||
$source_file = $tmp_file;
|
||||
$is_tmp_file = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $content;
|
||||
}
|
||||
$output = FileHandler::createImageFile($source_file, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type);
|
||||
|
||||
function getRegdate($format = 'Y.m.d H:i:s') {
|
||||
return zdate($this->get('regdate'), $format);
|
||||
}
|
||||
if($is_tmp_file) FileHandler::removeFile($source_file);
|
||||
// return the thumbnail path if successfully generated.
|
||||
if($output) return $thumbnail_url;
|
||||
// create an empty file not to attempt to generate the thumbnail afterwards
|
||||
else FileHandler::writeFile($thumbnail_file, '','w');
|
||||
|
||||
function getRegdateTime() {
|
||||
$regdate = $this->get('regdate');
|
||||
$year = substr($regdate,0,4);
|
||||
$month = substr($regdate,4,2);
|
||||
$day = substr($regdate,6,2);
|
||||
$hour = substr($regdate,8,2);
|
||||
$min = substr($regdate,10,2);
|
||||
$sec = substr($regdate,12,2);
|
||||
return mktime($hour,$min,$sec,$month,$day,$year);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
function getRegdateGM() {
|
||||
return $this->getRegdate('D, d M Y H:i:s').' '.$GLOBALS['_time_zone'];
|
||||
}
|
||||
|
||||
function getUpdate($format = 'Y.m.d H:i:s') {
|
||||
return zdate($this->get('last_update'), $format);
|
||||
}
|
||||
|
||||
function getPermanentUrl() {
|
||||
return getFullUrl('','document_srl',$this->get('document_srl')).'#comment_'.$this->get('comment_srl');
|
||||
}
|
||||
|
||||
|
||||
function getUpdateTime() {
|
||||
$year = substr($this->get('last_update'),0,4);
|
||||
$month = substr($this->get('last_update'),4,2);
|
||||
$day = substr($this->get('last_update'),6,2);
|
||||
$hour = substr($this->get('last_update'),8,2);
|
||||
$min = substr($this->get('last_update'),10,2);
|
||||
$sec = substr($this->get('last_update'),12,2);
|
||||
return mktime($hour,$min,$sec,$month,$day,$year);
|
||||
}
|
||||
|
||||
function getUpdateGM() {
|
||||
return gmdate("D, d M Y H:i:s", $this->getUpdateTime());
|
||||
}
|
||||
|
||||
function hasUploadedFiles() {
|
||||
if(($this->isSecret() && !$this->isAccessible()) && !$this->isGranted()) return false;
|
||||
return $this->get('uploaded_count')? true : false;
|
||||
}
|
||||
|
||||
function getUploadedFiles() {
|
||||
if(($this->isSecret() && !$this->isAccessible()) && !$this->isGranted()) return;
|
||||
if(!$this->get('uploaded_count')) return;
|
||||
|
||||
$oFileModel = &getModel('file');
|
||||
$file_list = $oFileModel->getFiles($this->comment_srl, $is_admin);
|
||||
return $file_list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the editor html
|
||||
* @return string
|
||||
*/
|
||||
function getEditor() {
|
||||
$module_srl = $this->get('module_srl');
|
||||
if(!$module_srl) $module_srl = Context::get('module_srl');
|
||||
$oEditorModel = &getModel('editor');
|
||||
return $oEditorModel->getModuleEditor('comment', $module_srl, $this->comment_srl, 'comment_srl', 'content');
|
||||
}
|
||||
|
||||
/**
|
||||
* Return author's profile image
|
||||
* @return object
|
||||
*/
|
||||
function getProfileImage() {
|
||||
if(!$this->isExists() || !$this->get('member_srl')) return;
|
||||
$oMemberModel = &getModel('member');
|
||||
$profile_info = $oMemberModel->getProfileImage($this->get('member_srl'));
|
||||
if(!$profile_info) return;
|
||||
|
||||
return $profile_info->src;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return author's signiture
|
||||
* @return string
|
||||
*/
|
||||
function getSignature() {
|
||||
// pass if the posting not exists.
|
||||
if(!$this->isExists() || !$this->get('member_srl')) return;
|
||||
// get the signiture information
|
||||
$oMemberModel = &getModel('member');
|
||||
$signature = $oMemberModel->getSignature($this->get('member_srl'));
|
||||
// check if max height of the signiture is specified on the member module
|
||||
if(!isset($GLOBALS['__member_signature_max_height'])) {
|
||||
$oModuleModel = &getModel('module');
|
||||
$member_config = $oModuleModel->getModuleConfig('member');
|
||||
$GLOBALS['__member_signature_max_height'] = $member_config->signature_max_height;
|
||||
}
|
||||
$max_signature_height = $GLOBALS['__member_signature_max_height'];
|
||||
if($max_signature_height) $signature = sprintf('<div style="max-height:%dpx;overflow:auto;overflow-x:hidden;height:expression(this.scrollHeight > %d ? \'%dpx\': \'auto\')">%s</div>', $max_signature_height, $max_signature_height, $max_signature_height, $signature);
|
||||
|
||||
return $signature;
|
||||
}
|
||||
|
||||
function thumbnailExists($width = 80, $height = 0, $type = '') {
|
||||
if(!$this->comment_srl) return false;
|
||||
if(!$this->getThumbnail($width, $height, $type)) return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
function getThumbnail($width = 80, $height = 0, $thumbnail_type = '') {
|
||||
// return false if no doc exists
|
||||
if(!$this->comment_srl) return;
|
||||
// If signiture height setting is omitted, create a square
|
||||
if(!$height) $height = $width;
|
||||
// return false if neigher attached file nor image;
|
||||
if(!$this->hasUploadedFiles() && !preg_match("!<img!is", $this->get('content'))) return;
|
||||
// get thumbail generation info on the doc module configuration.
|
||||
if(!in_array($thumbnail_type, array('crop','ratio'))) $thumbnail_type = 'crop';
|
||||
// Define thumbnail information
|
||||
$thumbnail_path = sprintf('files/cache/thumbnails/%s',getNumberingPath($this->comment_srl, 3));
|
||||
$thumbnail_file = sprintf('%s%dx%d.%s.jpg', $thumbnail_path, $width, $height, $thumbnail_type);
|
||||
$thumbnail_url = Context::getRequestUri().$thumbnail_file;
|
||||
// return false if a size of existing thumbnail file is 0. otherwise return the file path
|
||||
if(file_exists($thumbnail_file)) {
|
||||
if(filesize($thumbnail_file)<1) return false;
|
||||
else return $thumbnail_url;
|
||||
}
|
||||
// Target file
|
||||
$source_file = null;
|
||||
$is_tmp_file = false;
|
||||
// find an image file among attached files
|
||||
if($this->hasUploadedFiles()) {
|
||||
$file_list = $this->getUploadedFiles();
|
||||
if(count($file_list)) {
|
||||
foreach($file_list as $file) {
|
||||
if($file->direct_download!='Y') continue;
|
||||
if(!preg_match("/\.(jpg|png|jpeg|gif|bmp)$/i",$file->source_filename)) continue;
|
||||
|
||||
$source_file = $file->uploaded_filename;
|
||||
if(!file_exists($source_file)) $source_file = null;
|
||||
else break;
|
||||
}
|
||||
}
|
||||
}
|
||||
// get an image file from the doc content if no file attached.
|
||||
if(!$source_file) {
|
||||
$content = $this->get('content');
|
||||
$target_src = null;
|
||||
preg_match_all("!src=(\"|')([^\"' ]*?)(\"|')!is", $content, $matches, PREG_SET_ORDER);
|
||||
$cnt = count($matches);
|
||||
for($i=0;$i<$cnt;$i++) {
|
||||
$target_src = $matches[$i][2];
|
||||
if(preg_match('/\/(common|modules|widgets|addons|layouts)\//i', $target_src)) continue;
|
||||
else {
|
||||
if(!preg_match('/^(http|https):\/\//i',$target_src)) $target_src = Context::getRequestUri().$target_src;
|
||||
$tmp_file = sprintf('./files/cache/tmp/%d', md5(rand(111111,999999).$this->comment_srl));
|
||||
if(!is_dir('./files/cache/tmp')) FileHandler::makeDir('./files/cache/tmp');
|
||||
FileHandler::getRemoteFile($target_src, $tmp_file);
|
||||
if(!file_exists($tmp_file)) continue;
|
||||
else {
|
||||
list($_w, $_h, $_t, $_a) = @getimagesize($tmp_file);
|
||||
if($_w<$width || $_h<$height) continue;
|
||||
|
||||
$source_file = $tmp_file;
|
||||
$is_tmp_file = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$output = FileHandler::createImageFile($source_file, $thumbnail_file, $width, $height, 'jpg', $thumbnail_type);
|
||||
|
||||
if($is_tmp_file) FileHandler::removeFile($source_file);
|
||||
// return the thumbnail path if successfully generated.
|
||||
if($output) return $thumbnail_url;
|
||||
// create an empty file not to attempt to generate the thumbnail afterwards
|
||||
else FileHandler::writeFile($thumbnail_file, '','w');
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
function isCarted() {
|
||||
return $_SESSION['comment_management'][$this->comment_srl];
|
||||
}
|
||||
}
|
||||
?>
|
||||
function isCarted()
|
||||
{
|
||||
return $_SESSION['comment_management'][$this->comment_srl];
|
||||
}
|
||||
}
|
||||
/* End of file comment.item.php */
|
||||
/* Location: ./modules/comment/comment.item.php */
|
||||
|
|
|
|||
|
|
@ -1,41 +1,42 @@
|
|||
<?php
|
||||
/**
|
||||
* @class communicationAdminController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief communication module of the admin controller class
|
||||
**/
|
||||
/**
|
||||
* @class communicationAdminController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief communication module of the admin controller class
|
||||
*/
|
||||
class communicationAdminController extends communication
|
||||
{
|
||||
/**
|
||||
* Initialization
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
}
|
||||
|
||||
class communicationAdminController extends communication {
|
||||
/**
|
||||
* save configurations of the communication module
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationAdminInsertConfig()
|
||||
{
|
||||
// get the default information
|
||||
$args = Context::gets('skin','colorset','editor_skin','sel_editor_colorset', 'mskin', 'mcolorset', 'layout_srl', 'mlayout_srl');
|
||||
$args->editor_colorset = $args->sel_editor_colorset;
|
||||
unset($args->sel_editor_colorset);
|
||||
|
||||
/**
|
||||
* Initialization
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
if(!$args->skin) $args->skin = 'default';
|
||||
if(!$args->colorset) $args->colorset = 'white';
|
||||
if(!$args->editor_skin) $args->editor_skin = 'default';
|
||||
if(!$args->mskin) $args->mskin = 'default';
|
||||
if(!$args->layout_srl) $args->layout_srl = null;
|
||||
|
||||
/**
|
||||
* save configurations of the communication module
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationAdminInsertConfig() {
|
||||
// get the default information
|
||||
$args = Context::gets('skin','colorset','editor_skin','sel_editor_colorset', 'mskin', 'mcolorset', 'layout_srl', 'mlayout_srl');
|
||||
$args->editor_colorset = $args->sel_editor_colorset;
|
||||
unset($args->sel_editor_colorset);
|
||||
// create the module module Controller object
|
||||
$oModuleController = &getController('module');
|
||||
$output = $oModuleController->insertModuleConfig('communication',$args);
|
||||
|
||||
if(!$args->skin) $args->skin = 'default';
|
||||
if(!$args->colorset) $args->colorset = 'white';
|
||||
if(!$args->editor_skin) $args->editor_skin = 'default';
|
||||
if(!$args->mskin) $args->mskin = 'default';
|
||||
if(!$args->layout_srl) $args->layout_srl = null;
|
||||
|
||||
// create the module module Controller object
|
||||
$oModuleController = &getController('module');
|
||||
$output = $oModuleController->insertModuleConfig('communication',$args);
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispCommunicationAdminConfig');
|
||||
return $this->setRedirectUrl($returnUrl, $output);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispCommunicationAdminConfig');
|
||||
return $this->setRedirectUrl($returnUrl, $output);
|
||||
}
|
||||
}
|
||||
/* End of file communication.admin.controller.php */
|
||||
/* Location: ./modules/comment/communication.admin.controller.php */
|
||||
|
|
|
|||
|
|
@ -1,58 +1,61 @@
|
|||
<?php
|
||||
/**
|
||||
* @class communicationAdminModel
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief communication module of the admin model class
|
||||
**/
|
||||
/**
|
||||
* @class communicationAdminModel
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* @brief communication module of the admin model class
|
||||
*/
|
||||
class communicationAdminModel extends communication
|
||||
{
|
||||
/**
|
||||
* Initialization
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
}
|
||||
|
||||
class communicationAdminModel extends communication {
|
||||
/**
|
||||
* the html to select colorset of the skin
|
||||
* @return void
|
||||
*/
|
||||
function getCommunicationAdminColorset()
|
||||
{
|
||||
$skin = Context::get('skin');
|
||||
$type = Context::get('type') == 'P' ? 'P' : 'M';
|
||||
Context::set('type', $type);
|
||||
|
||||
/**
|
||||
* Initialization
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
if($type == 'P')
|
||||
{
|
||||
$dir = 'skins';
|
||||
}
|
||||
else
|
||||
{
|
||||
$dir = 'm.skins';
|
||||
}
|
||||
|
||||
/**
|
||||
* the html to select colorset of the skin
|
||||
* @return void
|
||||
**/
|
||||
function getCommunicationAdminColorset() {
|
||||
$skin = Context::get('skin');
|
||||
$type = Context::get('type') == 'P' ? 'P' : 'M';
|
||||
Context::set('type', $type);
|
||||
if(!$skin) $tpl = "";
|
||||
else
|
||||
{
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin, $dir);
|
||||
Context::set('skin_info', $skin_info);
|
||||
|
||||
if($type == 'P')
|
||||
{
|
||||
$dir = 'skins';
|
||||
}
|
||||
else
|
||||
{
|
||||
$dir = 'm.skins';
|
||||
}
|
||||
$oModuleModel = &getModel('module');
|
||||
$communication_config = $oModuleModel->getModuleConfig('communication');
|
||||
if(!$communication_config->colorset) $communication_config->colorset = "white";
|
||||
Context::set('communication_config', $communication_config);
|
||||
|
||||
if(!$skin) $tpl = "";
|
||||
else {
|
||||
$oModuleModel = &getModel('module');
|
||||
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin, $dir);
|
||||
Context::set('skin_info', $skin_info);
|
||||
$security = new Security();
|
||||
$security->encodeHTML('skin_info.colorset..title','skin_info.colorset..name');
|
||||
$security->encodeHTML('skin_info.colorset..name');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$communication_config = $oModuleModel->getModuleConfig('communication');
|
||||
if(!$communication_config->colorset) $communication_config->colorset = "white";
|
||||
Context::set('communication_config', $communication_config);
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('skin_info.colorset..title','skin_info.colorset..name');
|
||||
$security->encodeHTML('skin_info.colorset..name');
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'colorset_list');
|
||||
}
|
||||
|
||||
$oTemplate = &TemplateHandler::getInstance();
|
||||
$tpl = $oTemplate->compile($this->module_path.'tpl', 'colorset_list');
|
||||
}
|
||||
$this->add('tpl', $tpl);
|
||||
$this->add('type', $type);
|
||||
}
|
||||
|
||||
$this->add('tpl', $tpl);
|
||||
$this->add('type', $type);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
}
|
||||
/* End of file communication.admin.model.php */
|
||||
/* Location: ./modules/comment/communication.admin.model.php */
|
||||
|
|
|
|||
|
|
@ -1,58 +1,58 @@
|
|||
<?php
|
||||
/**
|
||||
* @class communicationAdminView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* communication module of the admin view class
|
||||
**/
|
||||
/**
|
||||
* @class communicationAdminView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* communication module of the admin view class
|
||||
*/
|
||||
class communicationAdminView extends communication
|
||||
{
|
||||
/**
|
||||
* Initialization
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
}
|
||||
|
||||
class communicationAdminView extends communication {
|
||||
/**
|
||||
* configuration to manage messages and friends
|
||||
* @return void
|
||||
*/
|
||||
function dispCommunicationAdminConfig()
|
||||
{
|
||||
// Creating an object
|
||||
$oEditorModel = &getModel('editor');
|
||||
$oModuleModel = &getModel('module');
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
// get the configurations of communication module
|
||||
Context::set('communication_config', $oCommunicationModel->getConfig() );
|
||||
// get a list of layout
|
||||
Context::set('layout_list', $oLayoutModel->getLayoutList() );
|
||||
// get a list of editor skins
|
||||
Context::set('editor_skin_list', $oEditorModel->getEditorSkinList() );
|
||||
// get a list of communication skins
|
||||
Context::set('communication_skin_list', $oModuleModel->getSkins($this->module_path) );
|
||||
// get a list of communication skins
|
||||
Context::set('communication_mobile_skin_list', $oModuleModel->getSkins($this->module_path, 'm.skins') );
|
||||
|
||||
/**
|
||||
* Initialization
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
// Get a layout list
|
||||
$layout_list = $oLayoutModel->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
|
||||
/**
|
||||
* configuration to manage messages and friends
|
||||
* @return void
|
||||
**/
|
||||
function dispCommunicationAdminConfig()
|
||||
{
|
||||
// Creating an object
|
||||
$oEditorModel = &getModel('editor');
|
||||
$oModuleModel = &getModel('module');
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
// get the configurations of communication module
|
||||
Context::set('communication_config', $oCommunicationModel->getConfig() );
|
||||
// get a list of layout
|
||||
Context::set('layout_list', $oLayoutModel->getLayoutList() );
|
||||
// get a list of editor skins
|
||||
Context::set('editor_skin_list', $oEditorModel->getEditorSkinList() );
|
||||
// get a list of communication skins
|
||||
Context::set('communication_skin_list', $oModuleModel->getSkins($this->module_path) );
|
||||
// get a list of communication skins
|
||||
Context::set('communication_mobile_skin_list', $oModuleModel->getSkins($this->module_path, 'm.skins') );
|
||||
$mlayout_list = $oLayoutModel->getLayoutList(0, 'M');
|
||||
Context::set('mlayout_list', $mlayout_list);
|
||||
|
||||
// Get a layout list
|
||||
$layout_list = $oLayoutModel->getLayoutList();
|
||||
Context::set('layout_list', $layout_list);
|
||||
$security = new Security();
|
||||
$security->encodeHTML('communication_config..');
|
||||
$security->encodeHTML('layout_list..');
|
||||
$security->encodeHTML('editor_skin_list..');
|
||||
$security->encodeHTML('communication_skin_list..title');
|
||||
$security->encodeHTML('communication_mobile_skin_list..title');
|
||||
|
||||
$mlayout_list = $oLayoutModel->getLayoutList(0, 'M');
|
||||
Context::set('mlayout_list', $mlayout_list);
|
||||
|
||||
$security = new Security();
|
||||
$security->encodeHTML('communication_config..');
|
||||
$security->encodeHTML('layout_list..');
|
||||
$security->encodeHTML('editor_skin_list..');
|
||||
$security->encodeHTML('communication_skin_list..title');
|
||||
$security->encodeHTML('communication_mobile_skin_list..title');
|
||||
|
||||
// specify a template
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('index');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
// specify a template
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('index');
|
||||
}
|
||||
}
|
||||
/* End of file communication.admin.view.php */
|
||||
/* Location: ./modules/comment/communication.admin.view.php */
|
||||
|
|
|
|||
|
|
@ -1,77 +1,81 @@
|
|||
<?php
|
||||
/**
|
||||
* @class communication
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* communication module of the high class
|
||||
**/
|
||||
/**
|
||||
* @class communication
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* communication module of the high class
|
||||
*/
|
||||
class communication extends ModuleObject
|
||||
{
|
||||
/**
|
||||
* Implement if additional tasks are necessary when installing
|
||||
* @return Object
|
||||
*/
|
||||
function moduleInstall()
|
||||
{
|
||||
// Create a temporary file storage for one new private message notification
|
||||
FileHandler::makeDir('./files/member_extra_info/new_message_flags');
|
||||
return new Object();
|
||||
}
|
||||
|
||||
class communication extends ModuleObject {
|
||||
/**
|
||||
* method to check if successfully installed.
|
||||
* @return boolean true : need to update false : don't need to update
|
||||
*/
|
||||
function checkUpdate()
|
||||
{
|
||||
if(!is_dir("./files/member_extra_info/new_message_flags")) return true;
|
||||
|
||||
/**
|
||||
* Implement if additional tasks are necessary when installing
|
||||
* @return Object
|
||||
**/
|
||||
function moduleInstall() {
|
||||
// Create a temporary file storage for one new private message notification
|
||||
FileHandler::makeDir('./files/member_extra_info/new_message_flags');
|
||||
return new Object();
|
||||
}
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('message');
|
||||
|
||||
/**
|
||||
* method to check if successfully installed.
|
||||
* @return boolean true : need to update false : don't need to update
|
||||
**/
|
||||
function checkUpdate() {
|
||||
if(!is_dir("./files/member_extra_info/new_message_flags")) return true;
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('message');
|
||||
|
||||
if($config->skin)
|
||||
if($config->skin)
|
||||
{
|
||||
$config_parse = explode('.', $config->skin);
|
||||
if (count($config_parse) > 1)
|
||||
{
|
||||
$config_parse = explode('.', $config->skin);
|
||||
if (count($config_parse) > 1)
|
||||
$template_path = sprintf('./themes/%s/modules/communication/', $config_parse[0]);
|
||||
if(is_dir($template_path)) return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update
|
||||
* @return Object
|
||||
*/
|
||||
function moduleUpdate()
|
||||
{
|
||||
if(!is_dir("./files/member_extra_info/new_message_flags"))
|
||||
FileHandler::makeDir('./files/member_extra_info/new_message_flags');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('message');
|
||||
|
||||
if($config->skin)
|
||||
{
|
||||
$config_parse = explode('.', $config->skin);
|
||||
if (count($config_parse) > 1)
|
||||
{
|
||||
$template_path = sprintf('./themes/%s/modules/communication/', $config_parse[0]);
|
||||
if(is_dir($template_path))
|
||||
{
|
||||
$template_path = sprintf('./themes/%s/modules/communication/', $config_parse[0]);
|
||||
if(is_dir($template_path)) return true;
|
||||
$config->skin = implode('|@|', $config_parse);
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->updateModuleConfig('communication', $config);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* Update
|
||||
* @return Object
|
||||
**/
|
||||
function moduleUpdate() {
|
||||
if(!is_dir("./files/member_extra_info/new_message_flags"))
|
||||
FileHandler::makeDir('./files/member_extra_info/new_message_flags');
|
||||
|
||||
$oModuleModel = &getModel('module');
|
||||
$config = $oModuleModel->getModuleConfig('message');
|
||||
|
||||
if($config->skin)
|
||||
{
|
||||
$config_parse = explode('.', $config->skin);
|
||||
if (count($config_parse) > 1)
|
||||
{
|
||||
$template_path = sprintf('./themes/%s/modules/communication/', $config_parse[0]);
|
||||
if(is_dir($template_path))
|
||||
{
|
||||
$config->skin = implode('|@|', $config_parse);
|
||||
$oModuleController = &getController('module');
|
||||
$oModuleController->updateModuleConfig('communication', $config);
|
||||
}
|
||||
}
|
||||
}
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-generate the cache file
|
||||
* @return void
|
||||
**/
|
||||
function recompileCache() {
|
||||
}
|
||||
}
|
||||
?>
|
||||
/**
|
||||
* Re-generate the cache file
|
||||
* @return void
|
||||
*/
|
||||
function recompileCache()
|
||||
{
|
||||
}
|
||||
}
|
||||
/* End of file communication.class.php */
|
||||
/* Location: ./modules/comment/communication.class.php */
|
||||
|
|
|
|||
|
|
@ -1,483 +1,514 @@
|
|||
<?php
|
||||
/**
|
||||
* @class communicationController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* communication module of the Controller class
|
||||
**/
|
||||
/**
|
||||
* @class communicationController
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* communication module of the Controller class
|
||||
*/
|
||||
class communicationController extends communication
|
||||
{
|
||||
/**
|
||||
* Initialization
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
}
|
||||
|
||||
class communicationController extends communication {
|
||||
/**
|
||||
* change the settings of message box
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationUpdateAllowMessage()
|
||||
{
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
|
||||
/**
|
||||
* Initialization
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
$args->allow_message = Context::get('allow_message');
|
||||
if(!in_array($args->allow_message, array('Y','N','F'))) $args->allow_message = 'Y';
|
||||
|
||||
/**
|
||||
* change the settings of message box
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationUpdateAllowMessage() {
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
|
||||
$args->allow_message = Context::get('allow_message');
|
||||
if(!in_array($args->allow_message, array('Y','N','F'))) $args->allow_message = 'Y';
|
||||
$output = executeQuery('communication.updateAllowMessage', $args);
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationMessages', 'message_type', Context::get('message_type'));
|
||||
return $this->setRedirectUrl($returnUrl, $output);
|
||||
}
|
||||
|
||||
$output = executeQuery('communication.updateAllowMessage', $args);
|
||||
/**
|
||||
* Send a message
|
||||
* @return Object
|
||||
*/
|
||||
function procCommunicationSendMessage()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Check variables
|
||||
$receiver_srl = Context::get('receiver_srl');
|
||||
if(!$receiver_srl) return new Object(-1, 'msg_not_exists_member');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationMessages', 'message_type', Context::get('message_type'));
|
||||
return $this->setRedirectUrl($returnUrl, $output);
|
||||
}
|
||||
$title = trim(Context::get('title'));
|
||||
if(!$title) return new Object(-1, 'msg_title_is_null');
|
||||
|
||||
/**
|
||||
* Send a message
|
||||
* @return Object
|
||||
**/
|
||||
function procCommunicationSendMessage() {
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Check variables
|
||||
$receiver_srl = Context::get('receiver_srl');
|
||||
if(!$receiver_srl) return new Object(-1, 'msg_not_exists_member');
|
||||
$content = trim(Context::get('content'));
|
||||
if(!$content) return new Object(-1, 'msg_content_is_null');
|
||||
|
||||
$title = trim(Context::get('title'));
|
||||
if(!$title) return new Object(-1, 'msg_title_is_null');
|
||||
$send_mail = Context::get('send_mail');
|
||||
if($send_mail != 'Y') $send_mail = 'N';
|
||||
// Check if there is a member to receive a message
|
||||
$oMemberModel = &getModel('member');
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$receiver_member_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl);
|
||||
if($receiver_member_info->member_srl != $receiver_srl) return new Object(-1, 'msg_not_exists_member');
|
||||
// check whether to allow to receive the message(pass if a top-administrator)
|
||||
if($logged_info->is_admin != 'Y')
|
||||
{
|
||||
if($receiver_member_info->allow_message == 'F')
|
||||
{
|
||||
if(!$oCommunicationModel->isFriend($receiver_member_info->member_srl)) return new object(-1, 'msg_allow_message_to_friend');
|
||||
}
|
||||
else if($receiver_member_info->allow_message == 'N')
|
||||
{
|
||||
return new object(-1, 'msg_disallow_message');
|
||||
}
|
||||
}
|
||||
// send a message
|
||||
$output = $this->sendMessage($logged_info->member_srl, $receiver_srl, $title, $content);
|
||||
// send an e-mail
|
||||
if($output->toBool() && $send_mail == 'Y')
|
||||
{
|
||||
$view_url = Context::getRequestUri();
|
||||
$content = sprintf("%s<br /><br />From : <a href=\"%s\" target=\"_blank\">%s</a>",$content, $view_url, $view_url);
|
||||
$oMail = new Mail();
|
||||
$oMail->setTitle($title);
|
||||
$oMail->setContent($content);
|
||||
$oMail->setSender($logged_info->nick_name, $logged_info->email_address);
|
||||
$oMail->setReceiptor($receiver_member_info->nick_name, $receiver_member_info->email_address);
|
||||
$oMail->send();
|
||||
}
|
||||
|
||||
$content = trim(Context::get('content'));
|
||||
if(!$content) return new Object(-1, 'msg_content_is_null');
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON')))
|
||||
{
|
||||
global $lang;
|
||||
htmlHeader();
|
||||
alertScript($lang->success_sended);
|
||||
closePopupScript();
|
||||
htmlFooter();
|
||||
Context::close();
|
||||
exit;
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
$send_mail = Context::get('send_mail');
|
||||
if($send_mail != 'Y') $send_mail = 'N';
|
||||
// Check if there is a member to receive a message
|
||||
$oMemberModel = &getModel('member');
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$receiver_member_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl);
|
||||
if($receiver_member_info->member_srl != $receiver_srl) return new Object(-1, 'msg_not_exists_member');
|
||||
// check whether to allow to receive the message(pass if a top-administrator)
|
||||
if($logged_info->is_admin != 'Y') {
|
||||
if($receiver_member_info->allow_message == 'F') {
|
||||
if(!$oCommunicationModel->isFriend($receiver_member_info->member_srl)) return new object(-1, 'msg_allow_message_to_friend');
|
||||
} elseif($receiver_member_info->allow_message == 'N') {
|
||||
return new object(-1, 'msg_disallow_message');
|
||||
}
|
||||
}
|
||||
// send a message
|
||||
$output = $this->sendMessage($logged_info->member_srl, $receiver_srl, $title, $content);
|
||||
// send an e-mail
|
||||
if($output->toBool() && $send_mail == 'Y') {
|
||||
$view_url = Context::getRequestUri();
|
||||
$content = sprintf("%s<br /><br />From : <a href=\"%s\" target=\"_blank\">%s</a>",$content, $view_url, $view_url);
|
||||
$oMail = new Mail();
|
||||
$oMail->setTitle($title);
|
||||
$oMail->setContent($content);
|
||||
$oMail->setSender($logged_info->nick_name, $logged_info->email_address);
|
||||
$oMail->setReceiptor($receiver_member_info->nick_name, $receiver_member_info->email_address);
|
||||
$oMail->send();
|
||||
}
|
||||
/**
|
||||
* Send a message (DB controll)
|
||||
* @param int $sender_srl member_srl of sender
|
||||
* @param int $receiver_srl member_srl of receiver_srl
|
||||
* @param string $title
|
||||
* @param string $content
|
||||
* @param boolean $sender_log (default true)
|
||||
* @return Object
|
||||
*/
|
||||
function sendMessage($sender_srl, $receiver_srl, $title, $content, $sender_log = true)
|
||||
{
|
||||
$content = removeHackTag($content);
|
||||
$title = htmlspecialchars($title);
|
||||
// messages to save in the sendor's message box
|
||||
$sender_args->sender_srl = $sender_srl;
|
||||
$sender_args->receiver_srl = $receiver_srl;
|
||||
$sender_args->message_type = 'S';
|
||||
$sender_args->title = $title;
|
||||
$sender_args->content = $content;
|
||||
$sender_args->readed = 'N';
|
||||
$sender_args->regdate = date("YmdHis");
|
||||
$sender_args->related_srl = getNextSequence();
|
||||
$sender_args->message_srl = getNextSequence();
|
||||
$sender_args->list_order = getNextSequence()*-1;
|
||||
// messages to save in the receiver's message box
|
||||
$receiver_args->message_srl = $sender_args->related_srl;
|
||||
$receiver_args->related_srl = 0;
|
||||
$receiver_args->list_order = $sender_args->related_srl*-1;
|
||||
$receiver_args->sender_srl = $sender_srl;
|
||||
if(!$receiver_args->sender_srl) $receiver_args->sender_srl = $receiver_srl;
|
||||
$receiver_args->receiver_srl = $receiver_srl;
|
||||
$receiver_args->message_type = 'R';
|
||||
$receiver_args->title = $title;
|
||||
$receiver_args->content = $content;
|
||||
$receiver_args->readed = 'N';
|
||||
$receiver_args->regdate = date("YmdHis");
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->begin();
|
||||
// messages to save in the sendor's message box
|
||||
if($sender_srl && $sender_log)
|
||||
{
|
||||
$output = executeQuery('communication.sendMessage', $sender_args);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
// messages to save in the receiver's message box
|
||||
$output = executeQuery('communication.sendMessage', $receiver_args);
|
||||
if(!$output->toBool())
|
||||
{
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
// create a flag that message is sent (in file format)
|
||||
$flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($receiver_srl);
|
||||
FileHandler::makeDir($flag_path);
|
||||
$flag_file = sprintf('%s%s', $flag_path, $receiver_srl);
|
||||
$flag_count = FileHandler::readFile($flag_file);
|
||||
FileHandler::writeFile($flag_file, ++$flag_count);
|
||||
|
||||
$oDB->commit();
|
||||
|
||||
return new Object(0,'success_sended');
|
||||
}
|
||||
|
||||
/**
|
||||
* store a specific message into the archive
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationStoreMessage()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Check variable
|
||||
$message_srl = Context::get('message_srl');
|
||||
if(!$message_srl) return new Object(-1,'msg_invalid_request');
|
||||
// get the message
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$message = $oCommunicationModel->getSelectedMessage($message_srl);
|
||||
if(!$message || $message->message_type != 'R') return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$args->message_srl = $message_srl;
|
||||
$args->receiver_srl = $logged_info->member_srl;
|
||||
$output = executeQuery('communication.setMessageStored', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a message
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationDeleteMessage()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
// Check the variable
|
||||
$message_srl = Context::get('message_srl');
|
||||
if(!$message_srl) return new Object(-1,'msg_invalid_request');
|
||||
// Get the message
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$message = $oCommunicationModel->getSelectedMessage($message_srl);
|
||||
if(!$message) return new Object(-1,'msg_invalid_request');
|
||||
// Check the grant
|
||||
switch($message->message_type)
|
||||
{
|
||||
case 'S':
|
||||
if($message->sender_srl != $member_srl) return new Object(-1, 'msg_invalid_request');
|
||||
break;
|
||||
case 'R':
|
||||
if($message->receiver_srl != $member_srl) return new Object(-1, 'msg_invalid_request');
|
||||
break;
|
||||
}
|
||||
// Delete
|
||||
$args->message_srl = $message_srl;
|
||||
$output = executeQuery('communication.deleteMessage', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_deleted');
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the multiple messages
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationDeleteMessages()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
// check variables
|
||||
if(!Context::get('message_srl_list')) return new Object(-1, 'msg_cart_is_null');
|
||||
|
||||
$message_srl_list = Context::get('message_srl_list');
|
||||
if(!is_array($message_srl_list)) $message_srl_list = explode('|@|', trim($message_srl_list));
|
||||
if(!count($message_srl_list)) return new Object(-1, 'msg_cart_is_null');
|
||||
|
||||
$message_type = Context::get('message_type');
|
||||
if(!$message_type || !in_array($message_type, array('R','S','T'))) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
$message_count = count($message_srl_list);
|
||||
$target = array();
|
||||
for($i=0;$i<$message_count;$i++)
|
||||
{
|
||||
$message_srl = (int)trim($message_srl_list[$i]);
|
||||
if(!$message_srl) continue;
|
||||
$target[] = $message_srl;
|
||||
}
|
||||
if(!count($target)) return new Object(-1,'msg_cart_is_null');
|
||||
// Delete
|
||||
$args->message_srls = implode(',',$target);
|
||||
$args->message_type = $message_type;
|
||||
|
||||
if($message_type == 'S') $args->sender_srl = $member_srl;
|
||||
else $args->receiver_srl = $member_srl;
|
||||
|
||||
$output = executeQuery('communication.deleteMessages', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_deleted');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationMessages', 'message_type', Context::get('message_type'));
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a friend
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationAddFriend()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$target_srl = (int)trim(Context::get('target_srl'));
|
||||
if(!$target_srl) return new Object(-1,'msg_invalid_request');
|
||||
// Variable
|
||||
$args->friend_srl = getNextSequence();
|
||||
$args->list_order = $args->friend_srl * -1;
|
||||
$args->friend_group_srl = Context::get('friend_group_srl');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->target_srl = $target_srl;
|
||||
$output = executeQuery('communication.addFriend', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->add('member_srl', $target_srl);
|
||||
$this->setMessage('success_registed');
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON')))
|
||||
{
|
||||
global $lang;
|
||||
htmlHeader();
|
||||
alertScript($lang->success_registed);
|
||||
closePopupScript();
|
||||
htmlFooter();
|
||||
Context::close();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Move a group of the friend
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationMoveFriend()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged'))
|
||||
{
|
||||
return new Object(-1, 'msg_not_logged');
|
||||
}
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Check variables
|
||||
$friend_srl_list = Context::get('friend_srl_list');
|
||||
if(!$friend_srl_list)
|
||||
{
|
||||
return new Object(-1, 'msg_cart_is_null');
|
||||
}
|
||||
|
||||
if(!is_array($friend_srl_list))
|
||||
{
|
||||
$friend_srl_list = explode('|@|', $friend_srl_list);
|
||||
}
|
||||
|
||||
if(!count($friend_srl_list)) return new Object(-1, 'msg_cart_is_null');
|
||||
|
||||
$friend_count = count($friend_srl_list);
|
||||
$target = array();
|
||||
for($i=0;$i<$friend_count;$i++)
|
||||
{
|
||||
$friend_srl = (int)trim($friend_srl_list[$i]);
|
||||
if(!$friend_srl) continue;
|
||||
$target[] = $friend_srl;
|
||||
}
|
||||
if(!count($target)) return new Object(-1,'msg_cart_is_null');
|
||||
// Variables
|
||||
$args->friend_srls = implode(',',$target);
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->friend_group_srl = Context::get('target_friend_group_srl');
|
||||
|
||||
$output = executeQuery('communication.moveFriend', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_moved');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationFriend');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a friend
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationDeleteFriend()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
// Check variables
|
||||
$friend_srl_list = Context::get('friend_srl_list');
|
||||
|
||||
if(!is_array($friend_srl_list))
|
||||
{
|
||||
$friend_srl_list = explode('|@|', $friend_srl_list);
|
||||
}
|
||||
if(!count($friend_srl_list)) return new Object(-1, 'msg_cart_is_null');
|
||||
|
||||
$friend_count = count($friend_srl_list);
|
||||
$target = array();
|
||||
for($i=0;$i<$friend_count;$i++)
|
||||
{
|
||||
$friend_srl = (int)trim($friend_srl_list[$i]);
|
||||
if(!$friend_srl) continue;
|
||||
$target[] = $friend_srl;
|
||||
}
|
||||
if(!count($target)) return new Object(-1,'msg_cart_is_null');
|
||||
// Delete
|
||||
$args->friend_srls = implode(',',$target);
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$output = executeQuery('communication.deleteFriend', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_deleted');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationFriend');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a group of friends
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationAddFriendGroup()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Variables
|
||||
$args->friend_group_srl = trim(Context::get('friend_group_srl'));
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->title = Context::get('title');
|
||||
$args->title = htmlspecialchars($args->title);
|
||||
if(!$args->title) return new Object(-1, 'msg_invalid_request');
|
||||
// modify if friend_group_srl exists.
|
||||
if($args->friend_group_srl)
|
||||
{
|
||||
$output = executeQuery('communication.renameFriendGroup', $args);
|
||||
$msg_code = 'success_updated';
|
||||
// add if not exists
|
||||
}
|
||||
else
|
||||
{
|
||||
$output = executeQuery('communication.addFriendGroup', $args);
|
||||
$msg_code = 'success_registed';
|
||||
}
|
||||
|
||||
if(!$output->toBool())
|
||||
{
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON')))
|
||||
{
|
||||
global $lang;
|
||||
htmlHeader();
|
||||
alertScript($lang->success_sended);
|
||||
alertScript($lang->fail_to_registed);
|
||||
closePopupScript();
|
||||
htmlFooter();
|
||||
Context::close();
|
||||
exit;
|
||||
}
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Send a message (DB controll)
|
||||
* @param int $sender_srl member_srl of sender
|
||||
* @param int $receiver_srl member_srl of receiver_srl
|
||||
* @param string $title
|
||||
* @param string $content
|
||||
* @param boolean $sender_log (default true)
|
||||
* @return Object
|
||||
**/
|
||||
function sendMessage($sender_srl, $receiver_srl, $title, $content, $sender_log = true) {
|
||||
$content = removeHackTag($content);
|
||||
$title = htmlspecialchars($title);
|
||||
// messages to save in the sendor's message box
|
||||
$sender_args->sender_srl = $sender_srl;
|
||||
$sender_args->receiver_srl = $receiver_srl;
|
||||
$sender_args->message_type = 'S';
|
||||
$sender_args->title = $title;
|
||||
$sender_args->content = $content;
|
||||
$sender_args->readed = 'N';
|
||||
$sender_args->regdate = date("YmdHis");
|
||||
$sender_args->related_srl = getNextSequence();
|
||||
$sender_args->message_srl = getNextSequence();
|
||||
$sender_args->list_order = getNextSequence()*-1;
|
||||
// messages to save in the receiver's message box
|
||||
$receiver_args->message_srl = $sender_args->related_srl;
|
||||
$receiver_args->related_srl = 0;
|
||||
$receiver_args->list_order = $sender_args->related_srl*-1;
|
||||
$receiver_args->sender_srl = $sender_srl;
|
||||
if(!$receiver_args->sender_srl) $receiver_args->sender_srl = $receiver_srl;
|
||||
$receiver_args->receiver_srl = $receiver_srl;
|
||||
$receiver_args->message_type = 'R';
|
||||
$receiver_args->title = $title;
|
||||
$receiver_args->content = $content;
|
||||
$receiver_args->readed = 'N';
|
||||
$receiver_args->regdate = date("YmdHis");
|
||||
|
||||
$oDB = &DB::getInstance();
|
||||
$oDB->begin();
|
||||
// messages to save in the sendor's message box
|
||||
if($sender_srl && $sender_log) {
|
||||
$output = executeQuery('communication.sendMessage', $sender_args);
|
||||
if(!$output->toBool()) {
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
}
|
||||
// messages to save in the receiver's message box
|
||||
$output = executeQuery('communication.sendMessage', $receiver_args);
|
||||
if(!$output->toBool()) {
|
||||
$oDB->rollback();
|
||||
return $output;
|
||||
}
|
||||
// create a flag that message is sent (in file format)
|
||||
$flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($receiver_srl);
|
||||
FileHandler::makeDir($flag_path);
|
||||
$flag_file = sprintf('%s%s', $flag_path, $receiver_srl);
|
||||
$flag_count = FileHandler::readFile($flag_file);
|
||||
FileHandler::writeFile($flag_file, ++$flag_count);
|
||||
|
||||
$oDB->commit();
|
||||
|
||||
return new Object(0,'success_sended');
|
||||
}
|
||||
|
||||
/**
|
||||
* store a specific message into the archive
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationStoreMessage() {
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Check variable
|
||||
$message_srl = Context::get('message_srl');
|
||||
if(!$message_srl) return new Object(-1,'msg_invalid_request');
|
||||
// get the message
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$message = $oCommunicationModel->getSelectedMessage($message_srl);
|
||||
if(!$message || $message->message_type != 'R') return new Object(-1,'msg_invalid_request');
|
||||
|
||||
$args->message_srl = $message_srl;
|
||||
$args->receiver_srl = $logged_info->member_srl;
|
||||
$output = executeQuery('communication.setMessageStored', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_registed');
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a message
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationDeleteMessage() {
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
// Check the variable
|
||||
$message_srl = Context::get('message_srl');
|
||||
if(!$message_srl) return new Object(-1,'msg_invalid_request');
|
||||
// Get the message
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$message = $oCommunicationModel->getSelectedMessage($message_srl);
|
||||
if(!$message) return new Object(-1,'msg_invalid_request');
|
||||
// Check the grant
|
||||
switch($message->message_type)
|
||||
else return $output;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON')))
|
||||
{
|
||||
case 'S':
|
||||
if($message->sender_srl != $member_srl) return new Object(-1, 'msg_invalid_request');
|
||||
break;
|
||||
case 'R':
|
||||
if($message->receiver_srl != $member_srl) return new Object(-1, 'msg_invalid_request');
|
||||
break;
|
||||
}
|
||||
// Delete
|
||||
$args->message_srl = $message_srl;
|
||||
$output = executeQuery('communication.deleteMessage', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_deleted');
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete the multiple messages
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationDeleteMessages() {
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
// check variables
|
||||
if(!Context::get('message_srl_list')) return new Object(-1, 'msg_cart_is_null');
|
||||
|
||||
$message_srl_list = Context::get('message_srl_list');
|
||||
if(!is_array($message_srl_list)) $message_srl_list = explode('|@|', trim($message_srl_list));
|
||||
if(!count($message_srl_list)) return new Object(-1, 'msg_cart_is_null');
|
||||
|
||||
$message_type = Context::get('message_type');
|
||||
if(!$message_type || !in_array($message_type, array('R','S','T'))) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
$message_count = count($message_srl_list);
|
||||
$target = array();
|
||||
for($i=0;$i<$message_count;$i++) {
|
||||
$message_srl = (int)trim($message_srl_list[$i]);
|
||||
if(!$message_srl) continue;
|
||||
$target[] = $message_srl;
|
||||
}
|
||||
if(!count($target)) return new Object(-1,'msg_cart_is_null');
|
||||
// Delete
|
||||
$args->message_srls = implode(',',$target);
|
||||
$args->message_type = $message_type;
|
||||
|
||||
if($message_type == 'S') $args->sender_srl = $member_srl;
|
||||
else $args->receiver_srl = $member_srl;
|
||||
|
||||
$output = executeQuery('communication.deleteMessages', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_deleted');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationMessages', 'message_type', Context::get('message_type'));
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a friend
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationAddFriend() {
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$target_srl = (int)trim(Context::get('target_srl'));
|
||||
if(!$target_srl) return new Object(-1,'msg_invalid_request');
|
||||
// Variable
|
||||
$args->friend_srl = getNextSequence();
|
||||
$args->list_order = $args->friend_srl * -1;
|
||||
$args->friend_group_srl = Context::get('friend_group_srl');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->target_srl = $target_srl;
|
||||
$output = executeQuery('communication.addFriend', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->add('member_srl', $target_srl);
|
||||
$this->setMessage('success_registed');
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
global $lang;
|
||||
htmlHeader();
|
||||
alertScript($lang->success_registed);
|
||||
reload(true);
|
||||
closePopupScript();
|
||||
htmlFooter();
|
||||
Context::close();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
else $this->setMessage($msg_code);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Move a group of the friend
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationMoveFriend()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged'))
|
||||
{
|
||||
return new Object(-1, 'msg_not_logged');
|
||||
}
|
||||
/**
|
||||
* change a name of friend group
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationRenameFriendGroup()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Variables
|
||||
$args->friend_group_srl= Context::get('friend_group_srl');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->title = Context::get('title');
|
||||
$args->title = htmlspecialchars($args->title);
|
||||
if(!$args->title) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Check variables
|
||||
$friend_srl_list = Context::get('friend_srl_list');
|
||||
if(!$friend_srl_list)
|
||||
{
|
||||
return new Object(-1, 'msg_cart_is_null');
|
||||
}
|
||||
$output = executeQuery('communication.renameFriendGroup', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
if(!is_array($friend_srl_list))
|
||||
{
|
||||
$friend_srl_list = explode('|@|', $friend_srl_list);
|
||||
}
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
if(!count($friend_srl_list)) return new Object(-1, 'msg_cart_is_null');
|
||||
/**
|
||||
* Delete a group of friends
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
*/
|
||||
function procCommunicationDeleteFriendGroup()
|
||||
{
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Variables
|
||||
$args->friend_group_srl = Context::get('friend_group_srl');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$output = executeQuery('communication.deleteFriendGroup', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$friend_count = count($friend_srl_list);
|
||||
$target = array();
|
||||
for($i=0;$i<$friend_count;$i++) {
|
||||
$friend_srl = (int)trim($friend_srl_list[$i]);
|
||||
if(!$friend_srl) continue;
|
||||
$target[] = $friend_srl;
|
||||
}
|
||||
if(!count($target)) return new Object(-1,'msg_cart_is_null');
|
||||
// Variables
|
||||
$args->friend_srls = implode(',',$target);
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->friend_group_srl = Context::get('target_friend_group_srl');
|
||||
$this->setMessage('success_deleted');
|
||||
}
|
||||
|
||||
$output = executeQuery('communication.moveFriend', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
/**
|
||||
* set a message status to be 'already read'
|
||||
* @param int $message_srl
|
||||
* @return Object
|
||||
*/
|
||||
function setMessageReaded($message_srl)
|
||||
{
|
||||
$args->message_srl = $message_srl;
|
||||
$args->related_srl = $message_srl;
|
||||
return executeQuery('communication.setMessageReaded', $args);
|
||||
}
|
||||
|
||||
$this->setMessage('success_moved');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationFriend');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a friend
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationDeleteFriend() {
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
// Check variables
|
||||
$friend_srl_list = Context::get('friend_srl_list');
|
||||
|
||||
if(!is_array($friend_srl_list))
|
||||
{
|
||||
$friend_srl_list = explode('|@|', $friend_srl_list);
|
||||
}
|
||||
if(!count($friend_srl_list)) return new Object(-1, 'msg_cart_is_null');
|
||||
|
||||
$friend_count = count($friend_srl_list);
|
||||
$target = array();
|
||||
for($i=0;$i<$friend_count;$i++) {
|
||||
$friend_srl = (int)trim($friend_srl_list[$i]);
|
||||
if(!$friend_srl) continue;
|
||||
$target[] = $friend_srl;
|
||||
}
|
||||
if(!count($target)) return new Object(-1,'msg_cart_is_null');
|
||||
// Delete
|
||||
$args->friend_srls = implode(',',$target);
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$output = executeQuery('communication.deleteFriend', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_deleted');
|
||||
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'mid', Context::get('mid'), 'act', 'dispCommunicationFriend');
|
||||
$this->setRedirectUrl($returnUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a group of friends
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationAddFriendGroup() {
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Variables
|
||||
$args->friend_group_srl = trim(Context::get('friend_group_srl'));
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->title = Context::get('title');
|
||||
$args->title = htmlspecialchars($args->title);
|
||||
if(!$args->title) return new Object(-1, 'msg_invalid_request');
|
||||
// modify if friend_group_srl exists.
|
||||
if($args->friend_group_srl) {
|
||||
$output = executeQuery('communication.renameFriendGroup', $args);
|
||||
$msg_code = 'success_updated';
|
||||
// add if not exists
|
||||
} else {
|
||||
$output = executeQuery('communication.addFriendGroup', $args);
|
||||
$msg_code = 'success_registed';
|
||||
}
|
||||
|
||||
if(!$output->toBool())
|
||||
{
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
global $lang;
|
||||
htmlHeader();
|
||||
alertScript($lang->fail_to_registed);
|
||||
closePopupScript();
|
||||
htmlFooter();
|
||||
Context::close();
|
||||
exit;
|
||||
}
|
||||
else return $output;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
global $lang;
|
||||
htmlHeader();
|
||||
alertScript($lang->success_registed);
|
||||
reload(true);
|
||||
closePopupScript();
|
||||
htmlFooter();
|
||||
Context::close();
|
||||
exit;
|
||||
}
|
||||
else $this->setMessage($msg_code);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* change a name of friend group
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationRenameFriendGroup() {
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Variables
|
||||
$args->friend_group_srl= Context::get('friend_group_srl');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->title = Context::get('title');
|
||||
$args->title = htmlspecialchars($args->title);
|
||||
if(!$args->title) return new Object(-1, 'msg_invalid_request');
|
||||
|
||||
$output = executeQuery('communication.renameFriendGroup', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete a group of friends
|
||||
* @return void|Object (success : void, fail : Object)
|
||||
**/
|
||||
function procCommunicationDeleteFriendGroup() {
|
||||
// Check login information
|
||||
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// Variables
|
||||
$args->friend_group_srl = Context::get('friend_group_srl');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$output = executeQuery('communication.deleteFriendGroup', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$this->setMessage('success_deleted');
|
||||
}
|
||||
|
||||
/**
|
||||
* set a message status to be 'already read'
|
||||
* @param int $message_srl
|
||||
* @return Object
|
||||
**/
|
||||
function setMessageReaded($message_srl) {
|
||||
$args->message_srl = $message_srl;
|
||||
$args->related_srl = $message_srl;
|
||||
return executeQuery('communication.setMessageReaded', $args);
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
}
|
||||
/* End of file communication.controller.php */
|
||||
/* Location: ./modules/comment/communication.controller.php */
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
<?php
|
||||
require_once(_XE_PATH_.'modules/communication/communication.view.php');
|
||||
class communicationMobile extends communicationView {
|
||||
function init() {
|
||||
|
||||
class communicationMobile extends communicationView
|
||||
{
|
||||
function init()
|
||||
{
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
|
||||
$this->communication_config = $oCommunicationModel->getConfig();
|
||||
|
|
@ -74,3 +77,5 @@ class communicationMobile extends communicationView {
|
|||
$this->setTemplateFile($templateFile);
|
||||
}
|
||||
}
|
||||
/* End of file communication.mobile.php */
|
||||
/* Location: ./modules/comment/communication.mobile.php */
|
||||
|
|
|
|||
|
|
@ -1,199 +1,212 @@
|
|||
<?php
|
||||
/**
|
||||
* @class communicationModel
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* communication module of the Model class
|
||||
**/
|
||||
/**
|
||||
* @class communicationModel
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* communication module of the Model class
|
||||
*/
|
||||
class communicationModel extends communication
|
||||
{
|
||||
/**
|
||||
* Initialization
|
||||
* @return void
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
}
|
||||
|
||||
class communicationModel extends communication {
|
||||
/**
|
||||
* get the configuration
|
||||
* @return object config of communication module
|
||||
*/
|
||||
function getConfig()
|
||||
{
|
||||
$oModuleModel = &getModel('module');
|
||||
$communication_config = $oModuleModel->getModuleConfig('communication');
|
||||
|
||||
/**
|
||||
* Initialization
|
||||
* @return void
|
||||
**/
|
||||
function init() {
|
||||
}
|
||||
if(!$communication_config->skin) $communication_config->skin = 'default';
|
||||
if(!$communication_config->colorset) $communication_config->colorset = 'white';
|
||||
if(!$communication_config->editor_skin) $communication_config->editor_skin = 'default';
|
||||
if(!$communication_config->mskin) $communication_config->mskin = 'default';
|
||||
|
||||
/**
|
||||
* get the configuration
|
||||
* @return object config of communication module
|
||||
**/
|
||||
function getConfig() {
|
||||
$oModuleModel = &getModel('module');
|
||||
$communication_config = $oModuleModel->getModuleConfig('communication');
|
||||
return $communication_config;
|
||||
}
|
||||
|
||||
if(!$communication_config->skin) $communication_config->skin = 'default';
|
||||
if(!$communication_config->colorset) $communication_config->colorset = 'white';
|
||||
if(!$communication_config->editor_skin) $communication_config->editor_skin = 'default';
|
||||
if(!$communication_config->mskin) $communication_config->mskin = 'default';
|
||||
/**
|
||||
* get the message contents
|
||||
* @param int $message_srl
|
||||
* @param array $columnList
|
||||
* @return object message information
|
||||
*/
|
||||
function getSelectedMessage($message_srl, $columnList = array())
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
return $communication_config;
|
||||
}
|
||||
$args->message_srl = $message_srl;
|
||||
$output = executeQuery('communication.getMessage',$args, $columnList);
|
||||
$message = $output->data;
|
||||
if(!$message) return ;
|
||||
// get recipient's information if it is a sent message
|
||||
$oMemberModel = &getModel('member');
|
||||
if($message->sender_srl == $logged_info->member_srl && $message->message_type == 'S') $member_info = $oMemberModel->getMemberInfoByMemberSrl($message->receiver_srl);
|
||||
// get sendor's information if it is a received/archived message
|
||||
else $member_info = $oMemberModel->getMemberInfoByMemberSrl($message->sender_srl);
|
||||
|
||||
/**
|
||||
* get the message contents
|
||||
* @param int $message_srl
|
||||
* @param array $columnList
|
||||
* @return object message information
|
||||
**/
|
||||
function getSelectedMessage($message_srl, $columnList = array()) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
if($member_info)
|
||||
{
|
||||
foreach($member_info as $key => $val)
|
||||
{
|
||||
if($key != 'regdate') $message->{$key} = $val;
|
||||
}
|
||||
}
|
||||
// change the status if is a received and not yet read message
|
||||
if($message->message_type == 'R' && $message->readed != 'Y')
|
||||
{
|
||||
$oCommunicationController = &getController('communication');
|
||||
$oCommunicationController->setMessageReaded($message_srl);
|
||||
}
|
||||
|
||||
$args->message_srl = $message_srl;
|
||||
$output = executeQuery('communication.getMessage',$args, $columnList);
|
||||
$message = $output->data;
|
||||
if(!$message) return ;
|
||||
// get recipient's information if it is a sent message
|
||||
$oMemberModel = &getModel('member');
|
||||
if($message->sender_srl == $logged_info->member_srl && $message->message_type == 'S') $member_info = $oMemberModel->getMemberInfoByMemberSrl($message->receiver_srl);
|
||||
// get sendor's information if it is a received/archived message
|
||||
else $member_info = $oMemberModel->getMemberInfoByMemberSrl($message->sender_srl);
|
||||
return $message;
|
||||
}
|
||||
|
||||
if($member_info) {
|
||||
foreach($member_info as $key => $val) {
|
||||
if($key != 'regdate') $message->{$key} = $val;
|
||||
}
|
||||
}
|
||||
// change the status if is a received and not yet read message
|
||||
if($message->message_type == 'R' && $message->readed != 'Y') {
|
||||
$oCommunicationController = &getController('communication');
|
||||
$oCommunicationController->setMessageReaded($message_srl);
|
||||
}
|
||||
/**
|
||||
* get a new message
|
||||
* @param array $columnList
|
||||
* @return object message information
|
||||
*/
|
||||
function getNewMessage($columnList = array())
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->receiver_srl = $logged_info->member_srl;
|
||||
$args->readed = 'N';
|
||||
|
||||
return $message;
|
||||
}
|
||||
$output = executeQuery('communication.getNewMessage', $args, $columnList);
|
||||
if(!count($output->data)) return;
|
||||
$message = array_pop($output->data);
|
||||
|
||||
/**
|
||||
* get a new message
|
||||
* @param array $columnList
|
||||
* @return object message information
|
||||
**/
|
||||
function getNewMessage($columnList = array()) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->receiver_srl = $logged_info->member_srl;
|
||||
$args->readed = 'N';
|
||||
$oCommunicationController = &getController('communication');
|
||||
$oCommunicationController->setMessageReaded($message->message_srl);
|
||||
|
||||
$output = executeQuery('communication.getNewMessage', $args, $columnList);
|
||||
if(!count($output->data)) return;
|
||||
$message = array_pop($output->data);
|
||||
return $message;
|
||||
}
|
||||
|
||||
$oCommunicationController = &getController('communication');
|
||||
$oCommunicationController->setMessageReaded($message->message_srl);
|
||||
/**
|
||||
* get a message list
|
||||
* @param string $message_type (R: Received Message, S: Sent Message, T: Archive)
|
||||
* @param array $columnList
|
||||
* @return Object
|
||||
*/
|
||||
function getMessages($message_type = "R", $columnList = array())
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
return $message;
|
||||
}
|
||||
switch($message_type)
|
||||
{
|
||||
case 'R' :
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->message_type = 'R';
|
||||
$query_id = 'communication.getReceivedMessages';
|
||||
break;
|
||||
case 'T' :
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->message_type = 'T';
|
||||
$query_id = 'communication.getStoredMessages';
|
||||
break;
|
||||
default :
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->message_type = 'S';
|
||||
$query_id = 'communication.getSendedMessages';
|
||||
break;
|
||||
}
|
||||
// Other variables
|
||||
$args->sort_index = 'message.list_order';
|
||||
$args->page = Context::get('page');
|
||||
$args->list_count = 20;
|
||||
$args->page_count = 10;
|
||||
return executeQuery($query_id, $args, $columnList);
|
||||
}
|
||||
|
||||
/**
|
||||
* get a message list
|
||||
* @param string $message_type (R: Received Message, S: Sent Message, T: Archive)
|
||||
* @param array $columnList
|
||||
* @return Object
|
||||
**/
|
||||
function getMessages($message_type = "R", $columnList = array()) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
/**
|
||||
* Get a list of friends
|
||||
* @param int $friend_group_srl (default 0)
|
||||
* @param array $columnList
|
||||
* @return Object
|
||||
*/
|
||||
function getFriends($friend_group_srl = 0, $columnList = array())
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
switch($message_type) {
|
||||
case 'R' :
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->message_type = 'R';
|
||||
$query_id = 'communication.getReceivedMessages';
|
||||
break;
|
||||
case 'T' :
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->message_type = 'T';
|
||||
$query_id = 'communication.getStoredMessages';
|
||||
break;
|
||||
default :
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->message_type = 'S';
|
||||
$query_id = 'communication.getSendedMessages';
|
||||
break;
|
||||
|
||||
}
|
||||
// Other variables
|
||||
$args->sort_index = 'message.list_order';
|
||||
$args->page = Context::get('page');
|
||||
$args->list_count = 20;
|
||||
$args->page_count = 10;
|
||||
return executeQuery($query_id, $args, $columnList);
|
||||
}
|
||||
$args->friend_group_srl = $friend_group_srl;
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
// Other variables
|
||||
$args->page = Context::get('page');
|
||||
$args->sort_index = 'friend.list_order';
|
||||
$args->list_count = 10;
|
||||
$args->page_count = 10;
|
||||
$output = executeQuery('communication.getFriends', $args, $columnList);
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of friends
|
||||
* @param int $friend_group_srl (default 0)
|
||||
* @param array $columnList
|
||||
* @return Object
|
||||
**/
|
||||
function getFriends($friend_group_srl = 0, $columnList = array()) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
/**
|
||||
* check if a friend is already added
|
||||
* @param int $member_srl
|
||||
* @return int
|
||||
*/
|
||||
function isAddedFriend($member_srl)
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$args->friend_group_srl = $friend_group_srl;
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
// Other variables
|
||||
$args->page = Context::get('page');
|
||||
$args->sort_index = 'friend.list_order';
|
||||
$args->list_count = 10;
|
||||
$args->page_count = 10;
|
||||
$output = executeQuery('communication.getFriends', $args, $columnList);
|
||||
return $output;
|
||||
}
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->target_srl = $member_srl;
|
||||
$output = executeQuery('communication.isAddedFriend', $args);
|
||||
return $output->data->count;
|
||||
}
|
||||
|
||||
/**
|
||||
* check if a friend is already added
|
||||
* @param int $member_srl
|
||||
* @return int
|
||||
**/
|
||||
function isAddedFriend($member_srl) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
/**
|
||||
* Get a group of friends
|
||||
* @param int $friend_group_srl
|
||||
* @return object
|
||||
*/
|
||||
function getFriendGroupInfo($friend_group_srl)
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->target_srl = $member_srl;
|
||||
$output = executeQuery('communication.isAddedFriend', $args);
|
||||
return $output->data->count;
|
||||
}
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->friend_group_srl = $friend_group_srl;
|
||||
|
||||
/**
|
||||
* Get a group of friends
|
||||
* @param int $friend_group_srl
|
||||
* @return object
|
||||
**/
|
||||
function getFriendGroupInfo($friend_group_srl) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
$output = executeQuery('communication.getFriendGroup', $args);
|
||||
return $output->data;
|
||||
}
|
||||
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
$args->friend_group_srl = $friend_group_srl;
|
||||
/**
|
||||
* Get a list of groups
|
||||
* @return array
|
||||
*/
|
||||
function getFriendGroups()
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
|
||||
$output = executeQuery('communication.getFriendGroup', $args);
|
||||
return $output->data;
|
||||
}
|
||||
$output = executeQueryArray('communication.getFriendGroups', $args);
|
||||
$group_list = $output->data;
|
||||
if(!$group_list) return;
|
||||
return $group_list;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a list of groups
|
||||
* @return array
|
||||
**/
|
||||
function getFriendGroups() {
|
||||
$logged_info = Context::get('logged_info');
|
||||
$args->member_srl = $logged_info->member_srl;
|
||||
/**
|
||||
* check whether to be added in the friend list
|
||||
* @param int $target_srl
|
||||
* @return boolean (true : friend, false : not friend)
|
||||
*/
|
||||
function isFriend($target_srl)
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$output = executeQueryArray('communication.getFriendGroups', $args);
|
||||
$group_list = $output->data;
|
||||
if(!$group_list) return;
|
||||
return $group_list;
|
||||
}
|
||||
|
||||
/**
|
||||
* check whether to be added in the friend list
|
||||
* @param int $target_srl
|
||||
* @return boolean (true : friend, false : not friend)
|
||||
**/
|
||||
function isFriend($target_srl) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$args->member_srl = $target_srl;
|
||||
$args->target_srl = $logged_info->member_srl;
|
||||
$output = executeQuery('communication.isAddedFriend', $args);
|
||||
if($output->data->count) return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
$args->member_srl = $target_srl;
|
||||
$args->target_srl = $logged_info->member_srl;
|
||||
$output = executeQuery('communication.isAddedFriend', $args);
|
||||
if($output->data->count) return true;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
/* End of file communication.model.php */
|
||||
/* Location: ./modules/comment/communication.model.php */
|
||||
|
|
|
|||
|
|
@ -1,276 +1,294 @@
|
|||
<?php
|
||||
/**
|
||||
* @class communicationView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* View class of communication module
|
||||
**/
|
||||
/**
|
||||
* @class communicationView
|
||||
* @author NHN (developers@xpressengine.com)
|
||||
* View class of communication module
|
||||
*/
|
||||
class communicationView extends communication
|
||||
{
|
||||
/**
|
||||
* Initialization
|
||||
* @return void
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
|
||||
class communicationView extends communication {
|
||||
$this->communication_config = $oCommunicationModel->getConfig();
|
||||
$skin = $this->communication_config->skin;
|
||||
|
||||
/**
|
||||
* Initialization
|
||||
* @return void
|
||||
**/
|
||||
function init() {
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
Context::set('communication_config', $this->communication_config);
|
||||
|
||||
$this->communication_config = $oCommunicationModel->getConfig();
|
||||
$skin = $this->communication_config->skin;
|
||||
$config_parse = explode('|@|', $skin);
|
||||
if (count($config_parse) > 1)
|
||||
{
|
||||
$tpl_path = sprintf('./themes/%s/modules/communication/', $config_parse[0]);
|
||||
}
|
||||
else
|
||||
{
|
||||
$tpl_path = sprintf('%sskins/%s', $this->module_path, $skin);
|
||||
}
|
||||
$this->setTemplatePath($tpl_path);
|
||||
|
||||
Context::set('communication_config', $this->communication_config);
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_info = $oLayoutModel->getLayout($this->communication_config->layout_srl);
|
||||
if($layout_info)
|
||||
{
|
||||
$this->module_info->layout_srl = $this->communication_config->layout_srl;
|
||||
$this->setLayoutPath($layout_info->path);
|
||||
}
|
||||
}
|
||||
|
||||
$config_parse = explode('|@|', $skin);
|
||||
if (count($config_parse) > 1){
|
||||
$tpl_path = sprintf('./themes/%s/modules/communication/', $config_parse[0]);
|
||||
}else{
|
||||
$tpl_path = sprintf('%sskins/%s', $this->module_path, $skin);
|
||||
}
|
||||
$this->setTemplatePath($tpl_path);
|
||||
/**
|
||||
* Display message box
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
*/
|
||||
function dispCommunicationMessages()
|
||||
{
|
||||
// Error appears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
if(!array_key_exists('dispCommunicationMessages', $logged_info->menu_list))
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
|
||||
$oLayoutModel = &getModel('layout');
|
||||
$layout_info = $oLayoutModel->getLayout($this->communication_config->layout_srl);
|
||||
if($layout_info)
|
||||
// Set the variables
|
||||
$message_srl = Context::get('message_srl');
|
||||
$message_type = Context::get('message_type');
|
||||
if(!in_array($message_type, array('R','S','T')))
|
||||
{
|
||||
$message_type = 'R';
|
||||
Context::set('message_type', $message_type);
|
||||
}
|
||||
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
// extract contents if message_srl exists
|
||||
if($message_srl)
|
||||
{
|
||||
$columnList = array('message_srl', 'sender_srl', 'receiver_srl', 'message_type', 'title', 'content', 'readed', 'regdate');
|
||||
$message = $oCommunicationModel->getSelectedMessage($message_srl, $columnList);
|
||||
switch($message->message_type)
|
||||
{
|
||||
$this->module_info->layout_srl = $this->communication_config->layout_srl;
|
||||
$this->setLayoutPath($layout_info->path);
|
||||
case 'R':
|
||||
if($message->receiver_srl != $logged_info->member_srl)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
break;
|
||||
case 'S':
|
||||
if($message->sender_srl != $logged_info->member_srl)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
break;
|
||||
case 'T':
|
||||
if($message->receiver_srl != $logged_info->member_srl && $message->sender_srl != $logged_info->member_srl)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Display message box
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function dispCommunicationMessages() {
|
||||
// Error appears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
if(!array_key_exists('dispCommunicationMessages', $logged_info->menu_list))
|
||||
if($message->message_srl == $message_srl && ($message->receiver_srl == $logged_info->member_srl || $message->sender_srl == $logged_info->member_srl) )
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
|
||||
// Set the variables
|
||||
$message_srl = Context::get('message_srl');
|
||||
$message_type = Context::get('message_type');
|
||||
if(!in_array($message_type, array('R','S','T'))) {
|
||||
$message_type = 'R';
|
||||
Context::set('message_type', $message_type);
|
||||
}
|
||||
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
// extract contents if message_srl exists
|
||||
if($message_srl) {
|
||||
$columnList = array('message_srl', 'sender_srl', 'receiver_srl', 'message_type', 'title', 'content', 'readed', 'regdate');
|
||||
$message = $oCommunicationModel->getSelectedMessage($message_srl, $columnList);
|
||||
switch($message->message_type)
|
||||
{
|
||||
case 'R':
|
||||
if($message->receiver_srl != $logged_info->member_srl)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
break;
|
||||
case 'S':
|
||||
if($message->sender_srl != $logged_info->member_srl)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
break;
|
||||
case 'T':
|
||||
if($message->receiver_srl != $logged_info->member_srl && $message->sender_srl != $logged_info->member_srl)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
break;
|
||||
}
|
||||
if($message->message_srl == $message_srl && ($message->receiver_srl == $logged_info->member_srl || $message->sender_srl == $logged_info->member_srl) ) {
|
||||
stripEmbedTagForAdmin($message->content, $message->sender_srl);
|
||||
Context::set('message', $message);
|
||||
}
|
||||
}
|
||||
// Extract a list
|
||||
$columnList = array('message_srl', 'readed', 'title', 'member.member_srl', 'member.nick_name', 'message.regdate', 'readed_date');
|
||||
$output = $oCommunicationModel->getMessages($message_type, $columnList);
|
||||
|
||||
// set a template file
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('message_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
$oSecurity = new Security();
|
||||
$oSecurity->encodeHTML('message_list..nick_name');
|
||||
|
||||
$this->setTemplateFile('messages');
|
||||
}
|
||||
|
||||
/**
|
||||
* display a new message
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function dispCommunicationNewMessage() {
|
||||
$this->setLayoutPath('./common/tpl/');
|
||||
$this->setLayoutFile('popup_layout');
|
||||
// Error appears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
// get a new message
|
||||
$columnList = array('message_srl', 'member_srl', 'nick_name', 'title', 'content', 'sender_srl');
|
||||
$message = $oCommunicationModel->getNewMessage($columnList);
|
||||
if($message) {
|
||||
stripEmbedTagForAdmin($message->content, $message->sender_srl);
|
||||
Context::set('message', $message);
|
||||
}
|
||||
|
||||
// Delete a flag
|
||||
$flag_path = './files/communication_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl);
|
||||
$flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
|
||||
FileHandler::removeFile($flag_file);
|
||||
}
|
||||
// Extract a list
|
||||
$columnList = array('message_srl', 'readed', 'title', 'member.member_srl', 'member.nick_name', 'message.regdate', 'readed_date');
|
||||
$output = $oCommunicationModel->getMessages($message_type, $columnList);
|
||||
|
||||
$this->setTemplateFile('new_message');
|
||||
}
|
||||
// set a template file
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('message_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
/**
|
||||
* Display message sending
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function dispCommunicationSendMessage() {
|
||||
$this->setLayoutPath('./common/tpl/');
|
||||
$this->setLayoutFile("popup_layout");
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$oMemberModel = &getModel('member');
|
||||
// Error appears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// get receipient's information
|
||||
$oSecurity = new Security();
|
||||
$oSecurity->encodeHTML('message_list..nick_name');
|
||||
|
||||
// check inalid request
|
||||
$receiver_srl = Context::get('receiver_srl');
|
||||
if(!$receiver_srl) return $this->stop('msg_invalid_request');
|
||||
$this->setTemplateFile('messages');
|
||||
}
|
||||
|
||||
// check receiver and sender are same
|
||||
if($logged_info->member_srl == $receiver_srl) return $this->stop('msg_cannot_send_to_yourself');
|
||||
// get message_srl of the original message if it is a reply
|
||||
$message_srl = Context::get('message_srl');
|
||||
if($message_srl) {
|
||||
$source_message = $oCommunicationModel->getSelectedMessage($message_srl);
|
||||
if($source_message->message_srl == $message_srl && $source_message->sender_srl == $receiver_srl) {
|
||||
$source_message->title = "[re] ".$source_message->title;
|
||||
$source_message->content = "\r\n<br />\r\n<br /><div style=\"padding-left:5px; border-left:5px solid #DDDDDD;\">".trim($source_message->content)."</div>";
|
||||
Context::set('source_message', $source_message);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* display a new message
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
*/
|
||||
function dispCommunicationNewMessage()
|
||||
{
|
||||
$this->setLayoutPath('./common/tpl/');
|
||||
$this->setLayoutFile('popup_layout');
|
||||
// Error appears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$receiver_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl);
|
||||
if(!$receiver_info)
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
// get a new message
|
||||
$columnList = array('message_srl', 'member_srl', 'nick_name', 'title', 'content', 'sender_srl');
|
||||
$message = $oCommunicationModel->getNewMessage($columnList);
|
||||
if($message)
|
||||
{
|
||||
stripEmbedTagForAdmin($message->content, $message->sender_srl);
|
||||
Context::set('message', $message);
|
||||
}
|
||||
|
||||
// Delete a flag
|
||||
$flag_path = './files/communication_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl);
|
||||
$flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
|
||||
FileHandler::removeFile($flag_file);
|
||||
|
||||
$this->setTemplateFile('new_message');
|
||||
}
|
||||
|
||||
/**
|
||||
* Display message sending
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
*/
|
||||
function dispCommunicationSendMessage()
|
||||
{
|
||||
$this->setLayoutPath('./common/tpl/');
|
||||
$this->setLayoutFile("popup_layout");
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$oMemberModel = &getModel('member');
|
||||
// Error appears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// get receipient's information
|
||||
|
||||
// check inalid request
|
||||
$receiver_srl = Context::get('receiver_srl');
|
||||
if(!$receiver_srl) return $this->stop('msg_invalid_request');
|
||||
|
||||
// check receiver and sender are same
|
||||
if($logged_info->member_srl == $receiver_srl) return $this->stop('msg_cannot_send_to_yourself');
|
||||
// get message_srl of the original message if it is a reply
|
||||
$message_srl = Context::get('message_srl');
|
||||
if($message_srl)
|
||||
{
|
||||
$source_message = $oCommunicationModel->getSelectedMessage($message_srl);
|
||||
if($source_message->message_srl == $message_srl && $source_message->sender_srl == $receiver_srl)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
$source_message->title = "[re] ".$source_message->title;
|
||||
$source_message->content = "\r\n<br />\r\n<br /><div style=\"padding-left:5px; border-left:5px solid #DDDDDD;\">".trim($source_message->content)."</div>";
|
||||
Context::set('source_message', $source_message);
|
||||
}
|
||||
}
|
||||
|
||||
Context::set('receiver_info', $receiver_info);
|
||||
// set a signiture by calling getEditor of the editor module
|
||||
$oEditorModel = &getModel('editor');
|
||||
$option->primary_key_name = 'receiver_srl';
|
||||
$option->content_key_name = 'content';
|
||||
$option->allow_fileupload = false;
|
||||
$option->enable_autosave = false;
|
||||
$option->enable_default_component = true;// false;
|
||||
$option->enable_component = false;
|
||||
$option->resizable = false;
|
||||
$option->disable_html = true;
|
||||
$option->height = 300;
|
||||
$option->skin = $this->communication_config->editor_skin;
|
||||
$option->colorset = $this->communication_config->editor_colorset;
|
||||
$editor = $oEditorModel->getEditor($logged_info->member_srl, $option);
|
||||
Context::set('editor', $editor);
|
||||
$receiver_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl);
|
||||
if(!$receiver_info)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
|
||||
$this->setTemplateFile('send_message');
|
||||
}
|
||||
Context::set('receiver_info', $receiver_info);
|
||||
// set a signiture by calling getEditor of the editor module
|
||||
$oEditorModel = &getModel('editor');
|
||||
$option->primary_key_name = 'receiver_srl';
|
||||
$option->content_key_name = 'content';
|
||||
$option->allow_fileupload = false;
|
||||
$option->enable_autosave = false;
|
||||
$option->enable_default_component = true;// false;
|
||||
$option->enable_component = false;
|
||||
$option->resizable = false;
|
||||
$option->disable_html = true;
|
||||
$option->height = 300;
|
||||
$option->skin = $this->communication_config->editor_skin;
|
||||
$option->colorset = $this->communication_config->editor_colorset;
|
||||
$editor = $oEditorModel->getEditor($logged_info->member_srl, $option);
|
||||
Context::set('editor', $editor);
|
||||
|
||||
/**
|
||||
* display a list of friends
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function dispCommunicationFriend() {
|
||||
// Error appears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$this->setTemplateFile('send_message');
|
||||
}
|
||||
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
// get a group list
|
||||
$tmp_group_list = $oCommunicationModel->getFriendGroups();
|
||||
$group_count = count($tmp_group_list);
|
||||
for($i=0;$i<$group_count;$i++) $friend_group_list[$tmp_group_list[$i]->friend_group_srl] = $tmp_group_list[$i];
|
||||
Context::set('friend_group_list', $friend_group_list);
|
||||
// get a list of friends
|
||||
$friend_group_srl = Context::get('friend_group_srl');
|
||||
$columnList = array('friend_srl', 'friend_group_srl', 'target_srl', 'member.nick_name', 'friend.regdate');
|
||||
$output = $oCommunicationModel->getFriends($friend_group_srl, $columnList);
|
||||
$friend_count = count($output->data);
|
||||
if($friend_count) {
|
||||
foreach($output->data as $key => $val) {
|
||||
$group_srl = $val->friend_group_srl;
|
||||
$group_title = $friend_group_list[$group_srl]->title;
|
||||
if(!$group_title) $group_title = Context::get('default_friend_group');
|
||||
$output->data[$key]->group_title = $group_title;
|
||||
}
|
||||
}
|
||||
// set a template file
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('friend_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
/**
|
||||
* display a list of friends
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
*/
|
||||
function dispCommunicationFriend() {
|
||||
// Error appears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
|
||||
$this->setTemplateFile('friends');
|
||||
}
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
// get a group list
|
||||
$tmp_group_list = $oCommunicationModel->getFriendGroups();
|
||||
$group_count = count($tmp_group_list);
|
||||
for($i=0;$i<$group_count;$i++) $friend_group_list[$tmp_group_list[$i]->friend_group_srl] = $tmp_group_list[$i];
|
||||
Context::set('friend_group_list', $friend_group_list);
|
||||
// get a list of friends
|
||||
$friend_group_srl = Context::get('friend_group_srl');
|
||||
$columnList = array('friend_srl', 'friend_group_srl', 'target_srl', 'member.nick_name', 'friend.regdate');
|
||||
$output = $oCommunicationModel->getFriends($friend_group_srl, $columnList);
|
||||
$friend_count = count($output->data);
|
||||
if($friend_count)
|
||||
{
|
||||
foreach($output->data as $key => $val)
|
||||
{
|
||||
$group_srl = $val->friend_group_srl;
|
||||
$group_title = $friend_group_list[$group_srl]->title;
|
||||
if(!$group_title) $group_title = Context::get('default_friend_group');
|
||||
$output->data[$key]->group_title = $group_title;
|
||||
}
|
||||
}
|
||||
// set a template file
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('friend_list', $output->data);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
|
||||
/**
|
||||
* display Add a friend
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function dispCommunicationAddFriend() {
|
||||
$this->setLayoutPath('./common/tpl/');
|
||||
$this->setLayoutFile("popup_layout");
|
||||
// error appears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
$this->setTemplateFile('friends');
|
||||
}
|
||||
|
||||
$target_srl = Context::get('target_srl');
|
||||
if(!$target_srl) return $this->stop('msg_invalid_request');
|
||||
// get information of the member
|
||||
$oMemberModel = &getModel('member');
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$communication_info = $oMemberModel->getMemberInfoByMemberSrl($target_srl);
|
||||
if($communication_info->member_srl != $target_srl) return $this->stop('msg_invalid_request');
|
||||
Context::set('target_info', $communication_info);
|
||||
// get a group list
|
||||
$friend_group_list = $oCommunicationModel->getFriendGroups();
|
||||
Context::set('friend_group_list', $friend_group_list);
|
||||
/**
|
||||
* display Add a friend
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
*/
|
||||
function dispCommunicationAddFriend()
|
||||
{
|
||||
$this->setLayoutPath('./common/tpl/');
|
||||
$this->setLayoutFile("popup_layout");
|
||||
// error appears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$this->setTemplateFile('add_friend');
|
||||
}
|
||||
$target_srl = Context::get('target_srl');
|
||||
if(!$target_srl) return $this->stop('msg_invalid_request');
|
||||
// get information of the member
|
||||
$oMemberModel = &getModel('member');
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$communication_info = $oMemberModel->getMemberInfoByMemberSrl($target_srl);
|
||||
if($communication_info->member_srl != $target_srl) return $this->stop('msg_invalid_request');
|
||||
Context::set('target_info', $communication_info);
|
||||
// get a group list
|
||||
$friend_group_list = $oCommunicationModel->getFriendGroups();
|
||||
Context::set('friend_group_list', $friend_group_list);
|
||||
|
||||
/**
|
||||
* display add a group of friends
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
**/
|
||||
function dispCommunicationAddFriendGroup() {
|
||||
$this->setLayoutPath('./common/tpl/');
|
||||
$this->setLayoutFile("popup_layout");
|
||||
// error apprears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// change to edit mode when getting the group_srl
|
||||
$friend_group_srl = Context::get('friend_group_srl');
|
||||
if($friend_group_srl) {
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$friend_group = $oCommunicationModel->getFriendGroupInfo($friend_group_srl);
|
||||
if($friend_group->friend_group_srl == $friend_group_srl) Context::set('friend_group', $friend_group);
|
||||
}
|
||||
$this->setTemplateFile('add_friend_group');
|
||||
}
|
||||
}
|
||||
?>
|
||||
$this->setTemplateFile('add_friend');
|
||||
}
|
||||
|
||||
/**
|
||||
* display add a group of friends
|
||||
* @return void|Object (void : success, Object : fail)
|
||||
*/
|
||||
function dispCommunicationAddFriendGroup()
|
||||
{
|
||||
$this->setLayoutPath('./common/tpl/');
|
||||
$this->setLayoutFile("popup_layout");
|
||||
// error apprears if not logged-in
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
$logged_info = Context::get('logged_info');
|
||||
// change to edit mode when getting the group_srl
|
||||
$friend_group_srl = Context::get('friend_group_srl');
|
||||
if($friend_group_srl)
|
||||
{
|
||||
$oCommunicationModel = &getModel('communication');
|
||||
$friend_group = $oCommunicationModel->getFriendGroupInfo($friend_group_srl);
|
||||
if($friend_group->friend_group_srl == $friend_group_srl) Context::set('friend_group', $friend_group);
|
||||
}
|
||||
$this->setTemplateFile('add_friend_group');
|
||||
}
|
||||
}
|
||||
/* End of file communication.view.php */
|
||||
/* Location: ./modules/comment/communication.view.php */
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue