Esempio n. 1
0
function GetTagDisplayName($tagname)
{
    $TagDisplayName;
    switch (strtolower($tagname)) {
        case "img":
            $TagDisplayName = GetString("Image");
            break;
        case "object":
            $TagDisplayName = GetString("ActiveXObject");
            break;
        case "inserttable":
            $TagDisplayName = GetString($tagname);
            break;
        default:
            $TagDisplayName = $tagname;
            break;
    }
    return $TagDisplayName;
}
Esempio n. 2
0
		<meta http-equiv="Page-Exit" content="blendTrans(Duration=0.1)" />

		<link href="../Themes/<?php 
echo $Theme;
?>
/dialog.css" type="text/css" rel="stylesheet" />

		<!--[if IE]>

			<link href="../Style/IE.css" type="text/css" rel="stylesheet" />

		<![endif]-->

		<title><?php 
echo GetString("NewTemplate");
?>
</title>

	</head>

	<body bgcolor="white">

		<form id="Form1">

			<CE:EDITOR 

					id="OuterEditor" 

					AutoConfigure="Full"
Esempio n. 3
0
"></div>
			</div>
		</td>
	</tr>
	<tr class="split">
		<td colspan="2"></td>
	</tr>
	<tr>
		<td class="label"><?php 
echo $Module->getLanguage('postWrite/title');
?>
</td>
		<td class="input">
			<div class="inputBlock">
				<input type="text" name="title" class="inputControl"<?php 
echo $post !== null ? ' value="' . GetString($post->title, 'input') . '"' : '';
?>
 required>
				<div class="helpBlock" data-default="<?php 
echo $Module->getLanguage('youtube/help/title/default');
?>
" data-error="<?php 
echo $Module->getLanguage('youtube/help/title/error');
?>
"></div>
			</div>
		</td>
	</tr>
	<tr class="split">
		<td colspan="2"></td>
	</tr>
Esempio n. 4
0
					    </a>
					</td>
				</tr>
				<tr>
					<td>					    			    
					    <a href="###" class="codebutton" onclick="codeCleaner('span');">					
					        <img src="../Images/spanend.gif" title="<?php 
echo GetString("CleanupSpan");
?>
" style="border:0;vertical-align:middle;" />
							<?php 
echo GetString("CleanupSpan");
?>
 
					    </a>
					</td>
				</tr>
			</table>
			<br>
			<div id="container-bottom">
				<input type="button" value="<?php 
echo GetString("Cancel");
?>
" class="formbutton" onclick="Close()" ID="Button1" NAME="Button1">
			</div>					
		</div>
	</body>
	<script type="text/javascript" src="../Scripts/Dialog/DialogFoot.js"></script>
	<script type="text/javascript" src="../Scripts/Dialog/Dialog_Clean.js"></script>
</html>
Esempio n. 5
0
<?php

error_reporting(E_ALL ^ E_NOTICE);
include_once "Include_Security.php";
$FrameSrc = "Tag.Frame.php";
if ($_SERVER["QUERY_STRING"] != "") {
    $FrameSrc = $FrameSrc . "?" . $_SERVER["QUERY_STRING"];
}
?>
<html>
	<head>
		<title><?php 
echo GetString("Properties");
?>
</title>		
	</head>
	<script>
	window.changed=false;
	top.returnValue=false;
	</script>
	<body style="margin:0px;padding:0px;border-width:0px;overflow:hidden;" scroll="no">
		<iframe id='frame' frameborder='0' style='width:100%;height:100%;' src='<?php 
echo $FrameSrc;
?>
'></iframe>
	</body>
</html>
Esempio n. 6
0
<div id="outer"><div id="div_demo"><?php 
echo GetString("DemoText");
?>
</div></div>

<script type="text/javascript">



function UpdateState()

{

	div_demo.style.cssText=element.style.cssText;

}



function SyncToView()

{

	

}

function SyncTo(element)

{
Esempio n. 7
0
<fieldset><legend><?php 
echo GetString("Src");
?>
</legend>

	<input type="text" id="inp_src" style="width:320px" /><button id="btnbrowse"><?php 
echo GetString("Browse");
?>
</button>

</fieldset>

<fieldset style="height:180px;width:270px;overflow:hidden;"><legend><?php 
echo GetString("Demo");
?>
</legend>

	<img id="img_demo" src="" alt="" />

</fieldset>



<script type="text/javascript" src="../Scripts/Dialog/Dialog_Tag_Media.js"></script>

Esempio n. 8
0
 function ParseManifest($cc, $manifest)
 {
     LogInfo("Processing manifest info....");
     $xml = $this->GetManifest($cc, $manifest);
     $baseUrl = $xml->xpath("/ns:manifest/ns:baseURL");
     if (isset($baseUrl[0])) {
         $baseUrl = GetString($baseUrl[0]);
         if (substr($baseUrl, -1) != "/") {
             $baseUrl .= "/";
         }
     } else {
         $baseUrl = "";
     }
     $url = $xml->xpath("/ns:manifest/ns:media[@*]");
     if (isset($url[0]['href'])) {
         foreach ($url as $manifest) {
             $bitrate = (int) $manifest['bitrate'];
             $entry =& $manifests[$bitrate];
             $entry['bitrate'] = $bitrate;
             $href = GetString($manifest['href']);
             if (substr($href, 0, 1) == "/") {
                 $href = substr($href, 1);
             }
             $entry['url'] = NormalizePath($baseUrl . $href);
             $entry['xml'] = $this->GetManifest($cc, $entry['url']);
         }
     } else {
         $manifests[0]['bitrate'] = 0;
         $manifests[0]['url'] = $manifest;
         $manifests[0]['xml'] = $xml;
     }
     foreach ($manifests as $manifest) {
         $xml = $manifest['xml'];
         // Extract baseUrl from manifest url
         $baseUrl = $xml->xpath("/ns:manifest/ns:baseURL");
         if (isset($baseUrl[0])) {
             $baseUrl = GetString($baseUrl[0]);
             if (substr($baseUrl, -1) == "/") {
                 $baseUrl = substr($baseUrl, 0, -1);
             }
         } else {
             $baseUrl = $manifest['url'];
             if (strpos($baseUrl, '?') !== false) {
                 $baseUrl = substr($baseUrl, 0, strpos($baseUrl, '?'));
             }
             $baseUrl = substr($baseUrl, 0, strrpos($baseUrl, '/'));
         }
         if (!isHttpUrl($baseUrl)) {
             LogError("Provided manifest is not a valid HDS manifest");
         }
         $streams = $xml->xpath("/ns:manifest/ns:media");
         foreach ($streams as $stream) {
             $array = array();
             foreach ($stream->attributes() as $k => $v) {
                 $array[strtolower($k)] = GetString($v);
             }
             $array['metadata'] = GetString($stream->{'metadata'});
             $stream = $array;
             $bitrate = isset($stream['bitrate']) ? (int) $stream['bitrate'] : $manifest['bitrate'];
             $streamId = isset($stream[strtolower('streamId')]) ? $stream[strtolower('streamId')] : "";
             $mediaEntry =& $this->media[$bitrate];
             $mediaEntry['baseUrl'] = $baseUrl;
             if (substr($stream['url'], 0, 1) == "/") {
                 $mediaEntry['url'] = substr($stream['url'], 1);
             } else {
                 $mediaEntry['url'] = $stream['url'];
             }
             if (isset($stream[strtolower('bootstrapInfoId')])) {
                 $bootstrap = $xml->xpath("/ns:manifest/ns:bootstrapInfo[@id='" . $stream[strtolower('bootstrapInfoId')] . "']");
             } else {
                 $bootstrap = $xml->xpath("/ns:manifest/ns:bootstrapInfo");
             }
             if (isset($bootstrap[0]['url'])) {
                 $bootstrapUrl = GetString($bootstrap[0]['url']);
                 if (!isHttpUrl($bootstrapUrl)) {
                     $bootstrapUrl = $mediaEntry['baseUrl'] . "/{$bootstrapUrl}";
                 }
                 $mediaEntry['bootstrapUrl'] = NormalizePath($bootstrapUrl);
                 if ($cc->get($mediaEntry['bootstrapUrl']) != 200) {
                     LogError("Failed to get bootstrap info");
                 }
                 $mediaEntry['bootstrap'] = $cc->response;
             } else {
                 $mediaEntry['bootstrap'] = base64_decode(GetString($bootstrap[0]));
             }
             if (isset($stream['metadata'])) {
                 $mediaEntry['metadata'] = base64_decode($stream['metadata']);
             } else {
                 $mediaEntry['metadata'] = "";
             }
         }
     }
     // Available qualities
     $bitrates = array();
     if (!count($this->media)) {
         LogError("No media entry found");
     }
     krsort($this->media, SORT_NUMERIC);
     LogDebug("Manifest Entries:\n");
     LogDebug(sprintf(" %-8s%s", "Bitrate", "URL"));
     for ($i = 0; $i < count($this->media); $i++) {
         $key = KeyName($this->media, $i);
         $bitrates[] = $key;
         LogDebug(sprintf(" %-8d%s", $key, $this->media[$key]['url']));
     }
     LogDebug("");
     LogInfo("Quality Selection:\n Available: " . implode(' ', $bitrates));
     // Quality selection
     if (is_numeric($this->quality) and isset($this->media[$this->quality])) {
         $key = $this->quality;
         $this->media = $this->media[$key];
     } else {
         $this->quality = strtolower($this->quality);
         switch ($this->quality) {
             case "low":
                 $this->quality = 2;
                 break;
             case "medium":
                 $this->quality = 1;
                 break;
             default:
                 $this->quality = 0;
         }
         while ($this->quality >= 0) {
             $key = KeyName($this->media, $this->quality);
             if ($key !== NULL) {
                 $this->media = $this->media[$key];
                 break;
             } else {
                 $this->quality -= 1;
             }
         }
     }
     LogInfo(" Selected : " . $key);
     $this->baseUrl = $this->media['baseUrl'];
     if (isset($this->media['bootstrapUrl'])) {
         $this->bootstrapUrl = $this->media['bootstrapUrl'];
     }
     $bootstrapInfo = $this->media['bootstrap'];
     ReadBoxHeader($bootstrapInfo, $pos, $boxType, $boxSize);
     if ($boxType == "abst") {
         $this->ParseBootstrapBox($bootstrapInfo, $pos);
     } else {
         LogError("Failed to parse bootstrap info");
     }
 }
Esempio n. 9
0
 :</td>
			<td>
				<textarea id="inp_tooltip" rows="3" cols="20" style="width:320px"></textarea>
			</td>
		</tr>
	</table>
</fieldset>
<script type="text/javascript" >
	    var Caption = "<?php 
echo GetString("Caption");
?>
";
	    var Delete = "<?php 
echo GetString("Delete");
?>
";
	    var Insert = "<?php 
echo GetString("Insert");
?>
";
	    var Edit = "<?php 
echo GetString("Edit");
?>
";
	    var ValidID = "<?php 
echo GetString("ValidID");
?>
";
</script>
<script type="text/javascript" src="../Scripts/Dialog/Dialog_Tag_Table.js"></script>
Esempio n. 10
0
 function doProcess($action)
 {
     $results = new stdClass();
     $values = new stdClass();
     if ($action == 'getCategory') {
         $parent = Request('parent');
         $depth = Request('depth');
         if ($parent) {
             $values->categorys = $this->db()->select($this->table->category)->where('parent', $parent)->orderBy('sort', 'asc')->get();
         } elseif ($depth) {
             $values->categorys = $this->db()->select($this->table->category)->where('depth', $depth)->orderBy('sort', 'asc')->get();
         }
         if ($parent == 0) {
             $results->parent = null;
         } else {
             $results->parent = $this->db()->select($this->table->category)->where('idx', $parent)->getOne();
         }
         $results->success = true;
         $results->categorys = $values->categorys;
     }
     if ($action == 'sellerItem') {
         $lists = $this->db()->select($this->table->item)->where('midx', $this->IM->getModule('member')->getLogged());
         $total = $lists->copy()->count();
         $lists = $lists->get();
         for ($i = 0, $loop = count($lists); $i < $loop; $i++) {
             $lists[$i]->image = $this->IM->getModule('attachment')->getAttachmentUrl($lists[$i]->image_default);
         }
         $results->success = true;
         $results->total = $total;
         $results->lists = $lists;
     }
     if ($action == 'sellerItemAddModal') {
         $results->success = true;
         $results->modalHtml = $this->getSellerItemAddModal();
     }
     if ($action == 'sellerItemImage') {
         $meta = json_decode($_SERVER['HTTP_IMAGE_META']);
         $fileBytes = file_get_contents("php://input");
         $tempFileName = $this->IM->getModule('attachment')->getTempPath(true) . '/' . md5($fileBytes) . '.' . rand(100000, 999999);
         file_put_contents($tempFileName, $fileBytes);
         if ($this->IM->getModule('attachment')->createThumbnail($tempFileName, $tempFileName, 600, 600, false, 'jpg') == true) {
             if ($meta->imageType == 'addition' || empty($meta->imageIdx) == true || Decoder($meta->imageIdx) == false) {
                 $imageIdx = $this->IM->getModule('attachment')->fileSave($meta->imageType . '.jpg', $tempFileName, 'shop', $meta->imageType);
             } else {
                 $imageIdx = $this->IM->getModule('attachment')->fileReplace($post->logo, $meta->imageType . '.jpg', $tempFileName);
             }
             $results->success = true;
             $results->imageIdx = Encoder($imageIdx);
             $results->imageType = $meta->imageType;
             $results->imageUrl = $this->IM->getModule('attachment')->getAttachmentUrl($imageIdx, $meta->imageType == 'default' ? 'view' : 'thumbnail');
         }
     }
     if ($action == 'sellerItemPost') {
         //			print_r($_REQUEST);
         $errors = array();
         $values->idx = Request('idx');
         $values->title = Request('title') ? Request('title') : ($errors['title'] = $this->getLanguage('seller/item/post/help/title/error'));
         $values->detail = Request('detail');
         $values->seller = Request('seller') ? Request('seller') : ($errors['seller'] = $this->getLanguage('seller/item/post/help/seller/error'));
         $values->homepage = Request('homepage') ? preg_match('/^http/', Request('homepage')) == true ? Request('homepage') : 'http://' . Request('homepage') : '';
         $values->category1 = Request('category1') ? Request('category1') : ($errors['category1'] = $this->getLanguage('seller/item/post/help/category/error'));
         $values->category2 = Request('category2') ? Request('category2') : 0;
         $values->category3 = Request('category3') ? Request('category3') : 0;
         $values->brand = Request('brand');
         $values->maker = Request('maker');
         $values->model = Request('model');
         $values->price = preg_match('/^[1-9]+[0-9]*/', Request('price')) == true ? Request('price') : ($errors['price'] = $this->getLanguage('seller/item/post/help/price/error'));
         $values->allow_youth = Request('allow_youth');
         $values->image_default = Request('image_default') && Decoder(Request('image_default')) !== false ? Decoder(Request('image_default')) : ($errors['image_default'] = $this->getLanguage('seller/item/post/help/image/error'));
         $values->image_addition = Request('image_addition') ? json_decode(Request('image_addition')) : array();
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('seller/item/post/help/content/error'));
         $values->attachments = is_array(Request('attachments')) == true ? Request('attachments') : array();
         for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
             $values->attachments[$i] = Decoder($values->attachments[$i]);
         }
         $values->content = $this->encodeContent($values->content, $values->attachments);
         for ($i = 0, $loop = count($values->image_addition); $i < $loop; $i++) {
             $values->image_addition[$i] = Decoder($values->image_addition[$i]);
         }
         $values->option_enable = Request('option_enable') == 'TRUE' ? true : false;
         if ($values->option_enable == true) {
             $values->options = json_decode(Request('options'));
             if (count($values->options->names) == 0 || count($values->options->selects) == 0) {
                 $errors['options'] = $this->getLanguage('seller/item/post/help/options/error');
             }
             for ($i = 0, $loop = count($values->options->selects); $i < $loop; $i++) {
                 if (is_numeric($values->options->selects[$i]->ea) == false || is_numeric($values->options->selects[$i]->price) == false) {
                     $errors['options'] = $this->getLanguage('seller/item/post/help/options/numberOnly');
                     break;
                 }
             }
         } else {
             $values->ea = strlen(Request('ea')) > 0 ? Request('ea') : -1;
             $values->options = new stdClass();
             $values->options->names = '';
             $values->options->selects = array();
         }
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif (count($errors) == 0) {
             $insert = array();
             $insert['title'] = $values->title;
             $insert['detail'] = $values->detail;
             $insert['seller'] = $values->seller;
             $insert['homepage'] = $values->homepage;
             $insert['category1'] = $values->category1;
             $insert['category2'] = $values->category2;
             $insert['category3'] = $values->category3;
             $insert['brand'] = $values->brand;
             $insert['maker'] = $values->maker;
             $insert['model'] = $values->model;
             $insert['price'] = $values->price;
             $insert['allow_youth'] = $values->allow_youth;
             $insert['content'] = $values->content;
             $insert['search'] = GetString($values->content, 'index');
             $insert['image_default'] = $values->image_default;
             $insert['options'] = json_encode($values->options->names, JSON_UNESCAPED_UNICODE);
             if ($values->idx == null) {
                 $insert['midx'] = $this->IM->getModule('member')->getLogged();
                 $insert['reg_date'] = time();
                 $values->idx = $this->db()->insert($this->table->item, $insert)->execute();
                 $results->success = true;
             }
             if ($results->success == true) {
                 for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
                     if ($this->db()->select($this->table->attachment)->where('idx', $values->attachments[$i])->count() == 0) {
                         $this->db()->insert($this->table->attachment, array('idx' => $values->attachments[$i], 'type' => 'ITEMDETAIL', 'parent' => $values->idx))->execute();
                     }
                 }
                 for ($i = 0, $loop = count($values->image_addition); $i < $loop; $i++) {
                     if ($this->db()->select($this->table->attachment)->where('idx', $values->image_addition[$i])->count() == 0) {
                         $this->db()->insert($this->table->attachment, array('idx' => $values->image_addition[$i], 'type' => 'ITEM', 'parent' => $values->idx))->execute();
                     }
                 }
                 $this->db()->delete($this->table->item_option)->where('idx', $values->idx)->execute();
                 if ($values->option_enable == true) {
                     for ($i = 0, $loop = count($values->options->selects); $i < $loop; $i++) {
                         $option = array();
                         $option['idx'] = $values->idx;
                         $option['option1'] = $values->options->selects[$i]->option1;
                         $option['option2'] = $values->options->selects[$i]->option2 == null ? '' : $values->options->selects[$i]->option2;
                         $option['option3'] = $values->options->selects[$i]->option3 == null ? '' : $values->options->selects[$i]->option3;
                         $option['price'] = $values->options->selects[$i]->price;
                         $option['ea'] = $values->options->selects[$i]->ea;
                         $option['sort'] = $i;
                         $this->db()->insert($this->table->item_option, $option)->execute();
                     }
                 }
             }
         } else {
             $results->success = false;
             $results->errors = $errors;
             $results->message = $this->getLanguage('error/required');
         }
     }
     if ($action == 'sellerPromotion') {
         $date = Request('date') ? strtotime(Request('date')) : strtotime(date('Y-m-d'));
         $timeInterval = $this->Module->getConfig('promotionTimeInterval') ? $this->Module->getConfig('promotionTimeInterval') : 30;
         $startDate = $date - 60 * 60 * 24 * 3;
         $endDate = $date + 60 * 60 * 24 * 4;
         $registeredLists = array();
         $promotions = $this->db()->select($this->table->promotion)->where('start_date', $startDate, '>=')->where('start_date', $endDate, '<')->get();
         for ($i = 0, $loop = count($promotions); $i < $loop; $i++) {
             if (empty($registeredLists[$promotions[$i]->start_date]) == true) {
                 $registeredLists[$promotions[$i]->start_date] = array();
             }
             $registeredLists[$promotions[$i]->start_date][] = $promotions[$i]->midx;
         }
         $midx = $this->IM->getModule('member')->getLogged();
         $lists = array();
         for ($i = 0; $i < 1440; $i = $i + $timeInterval) {
             $list = array();
             $list['start_time'] = $startDate + $i * 60;
             $list['start_date'] = date('Y-m-d', $startDate + $i * 60);
             for ($j = 1; $j <= 7; $j++) {
                 $time = $startDate + $i * 60 + 86400 * ($j - 1);
                 $list['day' . $j . '_time'] = $time;
                 $list['day' . $j . '_date'] = date('Y-m-d', $time);
                 if (isset($registeredLists[$time]) == true && count($registeredLists[$time]) > 0) {
                     $list['day' . $j] = count($registeredLists[$time]) >= $this->Module->getConfig('promotionTimeItemLimit') ? 'FULL' : 'EMPTY';
                     $registeredMidx = array_count_values($registeredLists[$time]);
                     $list['day' . $j] .= '@';
                     $list['day' . $j] .= isset($registeredMidx[$midx]) == true ? $registeredMidx[$midx] : 0;
                 } else {
                     $list['day' . $j] = 'EMPTY@0';
                 }
             }
             $lists[] = $list;
         }
         $results->success = true;
         $results->total = count($lists);
         $results->lists = $lists;
     }
     if ($action == 'sellerPromotionAddModal') {
         $item = $this->db()->select($this->table->item)->where('midx', $this->IM->getModule('member')->getLogged())->where('status', 'ACTIVE')->count();
         if ($item == 0) {
             $results->success = false;
             $results->message = $this->getLanguage('error/itemNotFound');
         } else {
             $date = Request('date');
             if ($date < time()) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/pastTime');
             } else {
                 $results->success = true;
                 $results->modalHtml = $this->getSellerPromotionAddModal($date);
             }
         }
     }
     if ($action == 'sellerPromotionPost') {
         $errors = array();
         $values->date = Request('date');
         $values->item = Request('item');
         $values->min = Request('min');
         $values->max = Request('max');
         $values->ea = preg_match('/^[1-9]+[0-9]*$/', Request('ea')) == true ? Request('ea') : ($errors['ea'] = $this->getLanguage('seller/promotion/post/help/ea/error'));
         $timeInterval = $this->Module->getConfig('promotionTimeInterval') ? $this->Module->getConfig('promotionTimeInterval') : 30;
         $price = $this->Module->getConfig('promotionPrice');
         if ($values->date < time() || $values->date % ($timeInterval * 60) != 0) {
             $errors['date'] = $this->getLanguage('seller/promotion/post/help/date/error');
         }
         $check = $this->db()->select($this->table->promotion)->where('start_date', $values->date)->count();
         if ($check >= $this->Module->getConfig('promotionTimeItemLimit')) {
             $errors['date'] = $this->getLanguage('seller/promotion/post/help/date/duplicated');
         }
         $check = $this->db()->select($this->table->item)->where('idx', $values->item)->where('midx', $this->IM->getModule('member')->getLogged())->where('status', 'ACTIVE')->get();
         if ($check == null) {
             $errors['item'] = $this->getLanguage('seller/promotion/post/help/item/error');
         }
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } elseif ($this->IM->getModule('member')->getMember()->point < $price) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notEnoughPoint');
         } elseif (count($errors) == 0) {
             $insert = array();
             $insert['midx'] = $this->IM->getModule('member')->getLogged();
             $insert['item'] = $values->item;
             $insert['start_date'] = $values->date;
             $insert['end_date'] = $values->date + 60 * $timeInterval;
             $insert['min'] = $values->min;
             $insert['max'] = $values->max;
             $insert['ea'] = $values->ea;
             $insert['reg_date'] = time();
             $values->idx = $this->db()->insert($this->table->promotion, $insert)->execute();
             $this->IM->getModule('member')->sendPoint(null, $price * -1, 'shop', 'promotion', array('idx' => $values->idx));
             //				$this->IM->getModule('member')->addActivity(null,$values->dataroom->post_exp,'dataroom','post',array('idx'=>$values->idx));
             $results->success = true;
         } else {
             $results->success = false;
             $results->errors = $errors;
             if (isset($errors['date']) == true) {
                 $results->message = $errors['date'];
             } else {
                 $results->message = $this->getLanguage('error/required');
             }
         }
     }
     $this->IM->fireEvent('afterDoProcess', 'shop', $action, $values, $results);
     return $results;
 }
Esempio n. 11
0
 function doProcess($action)
 {
     $results = new stdClass();
     $values = new stdClass();
     if ($action == 'listUrl') {
         $menu = Request('menu');
         $page = Request('page');
         $page = $this->IM->getPages($menu, $page);
         $oKeyword = Request('oKeyword');
         $oLabel = Request('oLabel');
         $oSort = Request('oSort');
         $keyword = Request('keyword');
         $label = Request('label');
         $sort = Request('sort');
         $keyword = Request('keyword');
         $p = Request('p') ? Request('p') : 1;
         $queryString = 'menu=' . $page->menu . '&page=' . $page->page . '&keyword=' . $keyword . '&label=' . $label . '&sort=' . $sort . '&p=' . $p;
         if ($oKeyword != $keyword || $oLabel != $label || $oSort != $sort) {
             $p = 1;
         }
         $default = array();
         if ($sort == 'idx') {
             $default['sort'] = '';
         }
         if (isset($page->context->config->label) == true && $page->context->config->label == $label) {
             $default['label'] = '';
         }
         $url = $this->IM->getUrl($page->menu, $page->page, 'list', $p) . $this->IM->getQueryString($default, $queryString);
         $results->success = true;
         $results->url = $url;
     }
     if ($action == 'postWrite') {
         $values->errors = array();
         $values->qid = Request('qid');
         $values->qna = $this->getQna($values->qid);
         $values->menu = Request('menu');
         $values->page = Request('page');
         $values->title = Request('title') ? Request('title') : ($values->errors['title'] = $this->getLanguage('postWrite/help/title/error'));
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('postWrite/help/content/error'));
         if (strlen(Request('point')) > 0 && Request('point') != '0') {
             $values->point = preg_match('/^[1-9]+[0-9]*$/', Request('point')) == true ? Request('point') : ($values->errors['point'] = $this->getLanguage('postWrite/help/point/error'));
         } else {
             $values->point = 0;
         }
         $values->attachments = is_array(Request('attachments')) == true ? Request('attachments') : array();
         for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
             $values->attachments[$i] = Decoder($values->attachments[$i]);
         }
         $values->content = $this->encodeContent($values->content, $values->attachments);
         if ($values->qna->use_label != 'NONE') {
             $values->labels = is_array(Request('labels')) == true ? Request('labels') : array();
             if ($values->qna->use_label == 'FORCE' && count($values->labels) == 0) {
                 $values->errors['labels'] = $this->getLanguage('postWrite/help/labels/error');
             }
         } else {
             $values->labels = array();
         }
         $this->IM->fireEvent('beforeDoProcess', 'qna', $action, $values, null);
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } else {
             if ($values->point > $this->IM->getModule('member')->getMember()->point) {
                 $values->errors['point'] = $this->getLanguage('error/notEnoughPoint');
             }
             if (empty($values->errors) == true) {
                 $results->success = true;
                 $mHash = new Hash();
                 $insert = array();
                 $insert['qid'] = $values->qid;
                 $insert['type'] = 'QUESTION';
                 $insert['midx'] = $this->IM->getModule('member')->getLogged();
                 $insert['title'] = $values->title;
                 $insert['content'] = $values->content;
                 $insert['search'] = GetString($values->content, 'index');
                 $insert['point'] = $values->point;
                 if ($this->checkPermission('write') == false) {
                     $results->success = false;
                     $results->message = $this->getLanguage('error/forbidden');
                 } else {
                     $results->success == true;
                     $reg_date = time();
                     $insert['reg_date'] = $reg_date;
                     $insert['last_answer'] = $reg_date;
                     $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                     $values->idx = $this->db()->insert($this->table->post, $insert)->execute();
                     $this->db()->update($this->table->post, array('parent' => $values->idx))->where('idx', $values->idx)->execute();
                     $this->IM->getModule('member')->sendPoint(null, $values->point, 'qna', 'give', array('idx' => $values->idx));
                     $this->IM->getModule('member')->sendPoint(null, $values->qna->post_point, 'qna', 'post', array('idx' => $values->idx));
                     $this->IM->getModule('member')->addActivity(null, $values->qna->post_exp, 'qna', 'post', array('idx' => $values->idx));
                 }
                 if ($results->success == true) {
                     for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
                         if ($this->db()->select($this->table->attachment)->where('idx', $values->attachments[$i])->count() == 0) {
                             $this->db()->insert($this->table->attachment, array('idx' => $values->attachments[$i], 'qid' => $values->qid, 'type' => 'POST', 'parent' => $values->idx))->execute();
                         }
                         $this->IM->getModule('attachment')->filePublish($values->attachments[$i]);
                     }
                     if (count($values->labels) > 0) {
                         for ($i = 0, $loop = count($values->labels); $i < $loop; $i++) {
                             if ($this->db()->select($this->table->post_label)->where('idx', $values->idx)->where('label', $values->labels[$i])->count() == 0) {
                                 $this->db()->insert($this->table->post_label, array('idx' => $values->idx, 'label' => $values->labels[$i], 'reg_date' => $reg_date))->execute();
                                 $lastPost = $this->db()->select($this->table->post_label)->where('label', $values->labels[$i])->orderBy('reg_date', 'desc')->get();
                                 $postnum = count($lastPost);
                                 $lastPostTime = $postnum > 0 ? $lastPost[0]->reg_date : 0;
                                 $this->db()->update($this->table->label, array('postnum' => $postnum, 'last_post' => $lastPostTime))->where('idx', $values->labels[$i])->execute();
                             }
                         }
                     }
                     $lastPost = $this->db()->select($this->table->post)->where('qid', $values->qid)->where('type', 'QUESTION')->orderBy('reg_date', 'desc')->get();
                     $postnum = count($lastPost);
                     $lastPostTime = $postnum > 0 ? $lastPost[0]->reg_date : 0;
                     $this->db()->update($this->table->qna, array('postnum' => $postnum, 'last_post' => $lastPostTime))->where('qid', $values->qid)->execute();
                     $this->IM->setArticle('qna', $values->qid, 'post', $values->idx, time());
                     $page = $this->IM->getPages($values->menu, $values->page);
                     if ($page->context->config == null) {
                         $results->redirect = $this->IM->getUrl($values->menu, $values->page, 'view', $values->idx);
                     } elseif (in_array($page->context->config->label, $values->labels) == true) {
                         $results->redirect = $this->IM->getUrl($values->menu, $values->page, 'view', $values->idx);
                     } else {
                         $redirectPage = $this->getPostPage($values->idx);
                         $results->redirect = $this->IM->getUrl($redirectPage->menu, $redirectPage->page, 'view', $values->idx);
                     }
                 }
             } else {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/required');
                 $results->errors = $values->errors;
             }
         }
     }
     if ($action == 'getAnswer') {
         $values->parent = Request('parent');
         $values->answers = array();
         $lists = $this->db()->select($this->table->post)->where('parent', $values->parent)->where('type', 'ANSWER')->orderBy('vote', 'desc')->get();
         for ($i = 0, $loop = count($lists); $i < $loop; $i++) {
             $values->answers[$i] = array('idx' => $lists[$i]->idx, 'vote' => $lists[$i]->vote, 'html' => $this->getAnswerItem($lists[$i]));
         }
         $results->success = true;
         $results->parent = $values->parent;
         $results->answerCount = number_format($loop);
         $results->answers = $values->answers;
     }
     if ($action == 'answerWrite') {
         $values->errors = array();
         $values->parent = Request('parent');
         $values->post = $this->getPost($values->parent);
         $values->qna = $this->getQna($values->post->qid);
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('postWrite/help/content/error'));
         $values->attachments = is_array(Request('attachments')) == true ? Request('attachments') : array();
         for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
             $values->attachments[$i] = Decoder($values->attachments[$i]);
         }
         $values->content = $this->encodeContent($values->content, $values->attachments);
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif ($values->post->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = false;
             $results->message = $this->getLanguage('error/mypost');
         } else {
             if (empty($values->errors) == true) {
                 $mHash = new Hash();
                 $insert = array();
                 $insert['qid'] = $values->post->qid;
                 $insert['type'] = 'ANSWER';
                 $insert['parent'] = $values->parent;
                 $insert['midx'] = $this->IM->getModule('member')->getLogged();
                 $insert['title'] = $values->post->title;
                 $insert['content'] = $values->content;
                 $insert['search'] = GetString($values->content, 'index');
                 $insert['reg_date'] = time();
                 $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                 if ($this->checkPermission('answer') == false) {
                     $results->success = false;
                     $results->message = $this->getLanguage('error/forbidden');
                 } else {
                     $results->success = true;
                     $values->idx = $this->db()->insert($this->table->post, $insert)->execute();
                     $this->IM->getModule('member')->sendPoint(null, $values->qna->answer_point, 'qna', 'answer', array('idx' => $values->idx));
                     $this->IM->getModule('member')->addActivity(null, $values->qna->answer_exp, 'qna', 'answer', array('idx' => $values->idx));
                     $this->IM->getModule('push')->sendPush($values->post->midx, 'qna', 'answer', $values->parent, array('from' => $this->IM->getModule('member')->getLogged()));
                 }
                 if ($results->success == true) {
                     for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
                         if ($this->db()->select($this->table->attachment)->where('idx', $values->attachments[$i])->count() == 0) {
                             $this->db()->insert($this->table->attachment, array('idx' => $values->attachments[$i], 'qid' => $values->post->qid, 'type' => 'POST', 'parent' => $values->idx))->execute();
                         }
                         $this->IM->getModule('attachment')->filePublish($values->attachments[$i]);
                     }
                     $lastAnswer = $this->db()->select($this->table->post)->where('parent', $values->parent)->where('type', 'ANSWER')->orderBy('reg_date', 'desc')->get();
                     $answernum = count($lastAnswer);
                     $lastAnswerTime = $answernum > 0 ? $lastAnswer[0]->reg_date : $values->post->reg_date;
                     $this->db()->update($this->table->post, array('answer' => $answernum, 'last_answer' => $lastAnswerTime))->where('idx', $values->parent)->execute();
                     $this->IM->setArticle('qna', $values->post->qid, 'post', $values->idx, time());
                     $results->message = $this->getLanguage('answerWrite/success');
                     $results->idx = $values->idx;
                     $results->parent = $values->parent;
                 }
             } elseif (count($values->errors) > 0) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/required');
                 $results->errors = $values->errors;
             }
         }
     }
     if ($action == 'answerSelect') {
         $values->idx = Request('idx');
         $values->confirm = Request('confirm');
         $values->answer = $this->getPost($values->idx);
         if ($values->answer == null || $values->answer->type != 'ANSWER') {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } else {
             $values->post = $this->getPost($values->answer->parent);
             if ($this->checkPermission('select') == false && $values->post->midx != $this->getModule('member')->getLogged()) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/forbidden');
             } elseif ($values->post->is_select == 'TRUE') {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/hasSelect');
             } else {
                 $results->success = true;
                 if ($values->confirm == 'TRUE') {
                     $values->qna = $this->getQna($values->post->qid);
                     $this->db()->update($this->table->post, array('is_select' => 'TRUE'))->where('idx', $values->idx)->execute();
                     $this->db()->update($this->table->post, array('is_select' => 'TRUE'))->where('idx', $values->post->idx)->execute();
                     $this->IM->getModule('member')->sendPoint(null, ceil($values->qna->select_point / 2), 'qna', 'select', array('idx' => $values->idx));
                     $this->IM->getModule('member')->sendPoint($values->answer->midx, $values->qna->select_point + $values->post->point, 'qna', 'selected', array('idx' => $values->idx));
                     $this->IM->getModule('member')->addActivity(null, ceil($values->qna->select_exp / 2), 'qna', 'select', array('idx' => $values->idx));
                     $this->IM->getModule('member')->addActivity($values->answer->midx, $values->qna->select_exp, 'qna', 'selected', array('idx' => $values->idx));
                     $this->IM->getModule('push')->sendPush($values->answer->midx, 'qna', 'selected', $values->idx, array('from' => $this->IM->getModule('member')->getLogged()));
                 } else {
                     $results->modalHtml = $this->getSelect($values->idx);
                 }
             }
         }
     }
     if ($action == 'getMent') {
         $values->parent = Request('parent');
         $values->ments = array();
         $lists = $this->db()->select($this->table->ment)->where('parent', $values->parent)->orderBy('idx', 'asc')->get();
         for ($i = 0, $loop = count($lists); $i < $loop; $i++) {
             $values->ments[$i] = array('idx' => $lists[$i]->idx, 'html' => $this->getMentItem($lists[$i]));
         }
         $results->success = true;
         $results->parent = $values->parent;
         $results->mentCount = number_format($loop);
         $results->ments = $values->ments;
     }
     if ($action == 'mentWrite') {
         $values->errors = array();
         $values->parent = Request('parent');
         $values->answer = $this->getPost($values->parent);
         $values->question = $this->getPost($values->answer->parent);
         $values->qna = $this->getQna($values->question->qid);
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('postWrite/help/content/error'));
         $values->attachments = is_array(Request('attachments')) == true ? Request('attachments') : array();
         for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
             $values->attachments[$i] = Decoder($values->attachments[$i]);
         }
         $values->content = $this->encodeContent($values->content, $values->attachments);
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif ($values->question->midx != $this->IM->getModule('member')->getLogged() && $values->answer->midx != $this->IM->getModule('member')->getLogged()) {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         } else {
             if (empty($values->errors) == true) {
                 $mHash = new Hash();
                 $insert = array();
                 $insert['qid'] = $values->qna->qid;
                 $insert['parent'] = $values->parent;
                 $insert['midx'] = $this->IM->getModule('member')->getLogged();
                 $insert['content'] = $values->content;
                 $insert['reg_date'] = time();
                 $insert['is_secret'] = Request('is_secret') == 'TRUE' ? 'TRUE' : 'FALSE';
                 $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                 $results->success = true;
                 $values->idx = $this->db()->insert($this->table->ment, $insert)->execute();
                 $this->IM->getModule('member')->addActivity(null, 5, 'qna', 'ment', array('idx' => $values->idx));
                 if ($values->question->midx == $this->IM->getModule('member')->getLogged()) {
                     $this->IM->getModule('push')->sendPush($values->answer->midx, 'qna', 'ment', $values->parent, array('from' => $this->IM->getModule('member')->getLogged()));
                 } else {
                     $this->IM->getModule('push')->sendPush($values->question->midx, 'qna', 'ment', $values->parent, array('from' => $this->IM->getModule('member')->getLogged()));
                 }
                 if ($results->success == true) {
                     for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
                         if ($this->db()->select($this->table->attachment)->where('idx', $values->attachments[$i])->count() == 0) {
                             $this->db()->insert($this->table->attachment, array('idx' => $values->attachments[$i], 'qid' => $values->qna->qid, 'type' => 'MENT', 'parent' => $values->idx))->execute();
                         }
                         $this->IM->getModule('attachment')->filePublish($values->attachments[$i]);
                     }
                     //						$this->IM->setArticle('qna',$values->post->qid,'post',$values->idx,time());
                     $results->message = $this->getLanguage('answerWrite/success');
                     $results->idx = $values->idx;
                     $results->parent = $values->parent;
                 }
             } elseif (count($values->errors) > 0) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/required');
                 $results->errors = $values->errors;
             }
         }
     }
     if ($action == 'vote') {
         $values->idx = Request('idx');
         $values->vote = in_array(Request('vote'), array('good', 'bad')) == true ? Request('vote') : 'good';
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } else {
             $values->post = $this->getPost($values->idx);
             if ($values->post == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($values->post->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = false;
                 $results->message = $this->getLanguage('vote/mypost');
             } else {
                 $values->qna = $this->getQna($values->post->qid);
                 $check = $this->db()->select($this->table->history)->where('parent', $values->idx)->where('midx', $this->IM->getModule('member')->getLogged())->getOne();
                 if ($check == null) {
                     if ($values->vote == 'good') {
                         $this->db()->update($this->table->post, array('vote' => $this->db()->inc()))->where('idx', $values->idx)->execute();
                     } else {
                         $this->db()->update($this->table->post, array('vote' => $this->db()->dec()))->where('idx', $values->idx)->execute();
                     }
                     $this->db()->insert($this->table->history, array('parent' => $values->idx, 'midx' => $this->IM->getModule('member')->getLogged(), 'result' => strtoupper($values->vote), 'reg_date' => time()))->execute();
                     $results->success = true;
                     $results->message = $this->getLanguage('vote/' . $values->vote);
                     $results->liveUpdate = 'liveUpdateQnaVote' . $values->idx;
                     $results->liveValue = number_format($values->vote == 'good' ? $values->post->vote + 1 : $values->post->vote - 1);
                     $this->IM->getModule('member')->sendPoint(null, $values->qna->vote_point, 'qna', strtolower($values->post->type) . '_' . $values->vote, array('idx' => $values->idx));
                     $this->IM->getModule('member')->addActivity(null, $values->qna->vote_exp, 'qna', strtolower($values->post->type) . '_' . $values->vote, array('idx' => $values->idx));
                     $this->IM->getModule('push')->sendPush($values->post->midx, 'qna', strtolower($values->post->type) . '_' . $values->vote, $values->post->idx, array('from' => $this->IM->getModule('member')->getLogged()));
                 } else {
                     $results->success = false;
                     $results->message = $this->getLanguage('vote/duplicated');
                     $results->result = $check->result;
                 }
             }
         }
     }
     $this->IM->fireEvent('afterDoProcess', 'qna', $action, $values, $results);
     return $results;
 }
Esempio n. 12
0
 public function ParsePlayer($fileName)
 {
     $data = file_get_contents($fileName);
     if (!$fileName) {
         return false;
     }
     $this->Id = $this->GetId($data)[1];
     $this->SteamId = $this->GetSteamId($data);
     $this->SteamName = utf8_encode(GetString($data, 'PlayerName'));
     if (empty(trim(GetString($data, 'PlayerCharacterName')))) {
         $this->CharacterName = "Survivor";
     } else {
         $this->CharacterName = GetString($data, 'PlayerCharacterName');
     }
     $this->TribeId = GetInt($data, 'TribeID')[1];
     if (strlen((string) $this->TribeId) < 2) {
         $this->TribeId = false;
     }
     $this->Level = GetUInt16($data, 'CharacterStatusComponent_Extra_CharacterLevel') + 1;
     $this->FileCreated = date('m/d/y g:ia', filectime($fileName));
     $this->FileUpdated = date('m/d/y g:ia', filemtime($fileName));
     $this->Online = false;
     return $this;
 }
Esempio n. 13
0
					<tr>
						<td colspan="2"><button class="codebutton" onclick="Move(-1);" id="btnMoveDownItem"><?php 
echo GetString("MoveDown");
?>
</button>
						</td>
					</tr>
				</table>
			</td>
		</tr>
		<tr>
			<td><select size="6" id="list_options" style="width:130px" onchange="document.getElementById('list_options2').selectedIndex = this.selectedIndex;Select(this);FireUIChanged();"></select></td>
			<td><select size="6" id="list_options2" style="width:130px" onchange="document.getElementById('list_options').selectedIndex = this.selectedIndex;Select(this);FireUIChanged();"></select></td>
		</tr>
		<tr>
			<td><?php 
echo GetString("Color");
?>
:&nbsp;<input autocomplete="off" size="7" type="text" id="inp_item_forecolor" />
			<img alt="" id="inp_item_forecolor_Preview" src="../Images/colorpicker.gif" style="margin-bottom:-2px"/>
			</td>
			<td><?php 
echo GetString("BackColor");
?>
:&nbsp;<input autocomplete="off" size="7" type="text" id="inp_item_backcolor" />
			<img alt="" id="inp_item_backcolor_Preview" src="../Images/colorpicker.gif" style="margin-bottom:-2px"/>
			</td>
		</tr>
	</table>
</fieldset>
<script type="text/javascript" src="../Scripts/Dialog/Dialog_Tag_Select.js"></script>
Esempio n. 14
0
echo GetString("Height");
?>
:</td>

						<td><input type="text" id="inp_cell_height" style="width:60px" /></td>

					</tr>

					<!-- //TODO: add more cell useful properties here -->

					<tr>

						<td colspan="2" align="center">

							<input type="button" id="btn_cell_editcell" value="<?php 
echo GetString("EditHtml");
?>
" /></td>

					</tr>

				</table>

				<br />

			</td>

			<td>

				<div style="border:1px solid gray;padding:1px;OVERFLOW: auto; HEIGHT: 215px; HEIGHT: 215px; ">
Esempio n. 15
0
				<table border="0" cellpadding="4" cellspacing="0" class="normal">
					<tr>
						<td>
							<table border="0" cellpadding="2" cellspacing="0" class="normal">
								<tr>
									<td valign="middle" style="width:60"><?php 
echo GetString("Horizontal");
?>
:</td>
									<td>
									    <input type="text" size="2" value="5" onkeypress="return CancelEventIfNotDigit()" style="WIDTH:80px" id="HSpace" />
								    </td>
								</tr>
								<tr>
									<td valign="middle"><?php 
echo GetString("Vertical");
?>
:</td>
									<td>
									    <input type="text" size="2" name="VSpace" onkeypress="return CancelEventIfNotDigit()" style="WIDTH:80px" id="VSpace" />
									</td>
								</tr>
							</table>
						</td>
					</tr>
				</table>
			</fieldset>
		</td>
		<td style="white-space:nowrap; width:5" >&nbsp;</td>
		<td valign="top">
			<div id="outer" style="width:230px; height:251px">
Esempio n. 16
0
&nbsp;&nbsp;&nbsp; 

<input class="formbutton" type="button" value="   <?php 
echo GetString("Cancel");
?>
  " onclick="do_Close()" id="Button2" />

						</div>

	</body>

	<script type="text/javascript">

	    var query_string = "?<?php 
echo $_SERVER["QUERY_STRING"];
?>
";

	    var AddLinktoImageMap = "<?php 
echo GetString("AddLinktoImageMap");
?>
";

	</script>

	<script type="text/javascript" src="../Scripts/Dialog/DialogFoot.js"></script>

	<script type="text/javascript" src="../Scripts/Dialog/Dialog_ImageMap.js"></script>

</html>
Esempio n. 17
0
							<td style="width:3">&nbsp;
							</td>
							<td style='vertical-align:middle' class="normal"><?php 
echo GetString("Shade");
?>
:</td>
							<td style='vertical-align:middle'>
								<select id="shade">
									<option value="shade" selected="selected">Shade</option>
									<option value="noshade">No shade</option>
								</select>
							</td>
						</tr>
						<tr>
							<td style='vertical-align:middle' class="normal"><?php 
echo GetString("Size");
?>
:</td>
							<td style='vertical-align:middle' colspan="4">
								<select id="sel_size" style="width:67px">
									<option selected="selected" value="1">1 px</option>
									<option value="2">2 px</option>
									<option value="3">3 px</option>
									<option value="4">4 px</option>
									<option value="5">5 px</option>
									<option value="6">6 px</option>
									<option value="7">7 px</option>
									<option value="8">8 px</option>
									<option value="9">9 px</option>
									<option value="10">10 px</option>
								</select>
Esempio n. 18
0
 function getShow($data)
 {
     ob_start();
     echo '<form id="ModuleDonationShowForm" onsubmit="return Donation.confirm(this);">' . PHP_EOL;
     echo '<input type="hidden" name="idx" value="' . $data->idx . '">' . PHP_EOL;
     $title = '후원내역 처리하기';
     $content = '';
     $content .= '<div class="label">입금방법</div>' . PHP_EOL;
     $content .= '<div class="inputBlock">' . PHP_EOL;
     $content .= '	<input type="hidden" name="intype" value="' . $data->intype . '">' . PHP_EOL;
     $content .= '	<div class="selectControl" data-field="intype">' . PHP_EOL;
     $content .= '		<button type="button">입금하신 계좌를 선택하여 주십시오. <span class="arrow"></span></button>' . PHP_EOL;
     $content .= '		<ul></ul>' . PHP_EOL;
     $content .= '	</div>' . PHP_EOL;
     $content .= '</div>' . PHP_EOL;
     $content .= '<div class="blankSpace"></div>' . PHP_EOL;
     $content .= '<div class="row">' . PHP_EOL;
     $content .= '	<div class="col-xs-6">' . PHP_EOL;
     $content .= '		<div class="label">입금자명</div>' . PHP_EOL;
     $content .= '		<div class="inputBlock">' . PHP_EOL;
     $content .= '			<input type="text" name="name" class="inputControl" value="' . GetString($data->name, 'inputbox') . '">' . PHP_EOL;
     $content .= '		</div>' . PHP_EOL;
     $content .= '	</div>' . PHP_EOL;
     $content .= '	<div class="col-xs-6">' . PHP_EOL;
     $content .= '		<div class="label">입금날짜</div>' . PHP_EOL;
     $content .= '		<div class="inputBlock">' . PHP_EOL;
     $content .= '			<input type="text" name="reg_date" class="inputControl" value="' . $data->reg_date . '">' . PHP_EOL;
     $content .= '		</div>' . PHP_EOL;
     $content .= '	</div>' . PHP_EOL;
     $content .= '</div>' . PHP_EOL;
     $content .= '<div class="blankSpace"></div>' . PHP_EOL;
     $content .= '<div class="label">입금금액</div>' . PHP_EOL;
     $content .= '<div class="inputBlock">' . PHP_EOL;
     $content .= '	<input type="text" name="price" class="inputControl" data-type="number" value="' . number_format($data->price) . '">' . PHP_EOL;
     $content .= '</div>' . PHP_EOL;
     $content .= '<div class="blankSpace"></div>' . PHP_EOL;
     $content .= '<div class="label">상태</div>' . PHP_EOL;
     $content .= '<div class="inputBlock">' . PHP_EOL;
     $content .= '	<input type="hidden" name="status" value="' . $data->status . '">' . PHP_EOL;
     $content .= '	<div class="selectControl" data-field="status">' . PHP_EOL;
     $content .= '		<button type="button"></button>' . PHP_EOL;
     $content .= '		<ul><li data-value="TRUE">처리완료</li><li data-value="FALSE">확인불가</li><li data-value="WAIT">대기중</li></ul>' . PHP_EOL;
     $content .= '	</div>' . PHP_EOL;
     $content .= '</div>' . PHP_EOL;
     $content .= '<div class="blankSpace"></div>' . PHP_EOL;
     $content .= '<div class="row">' . PHP_EOL;
     $content .= '	<div class="col-xs-6">' . PHP_EOL;
     $content .= '		<div class="label">혜택포인트</div>' . PHP_EOL;
     $content .= '		<div class="inputBlock">' . PHP_EOL;
     $content .= '			<input type="text" name="gift_point" class="inputControl" data-type="number" value="' . number_format($data->status == 'WAIT' ? $data->price : $data->gift_point) . '">' . PHP_EOL;
     $content .= '		</div>' . PHP_EOL;
     $content .= '	</div>' . PHP_EOL;
     $content .= '	<div class="col-xs-6">' . PHP_EOL;
     $content .= '		<div class="label">혜택경험치</div>' . PHP_EOL;
     $content .= '		<div class="inputBlock">' . PHP_EOL;
     $content .= '			<input type="text" name="gift_exp" class="inputControl" data-type="number" value="' . number_format($data->status == 'WAIT' ? floor($data->price * 0.02) : $data->gift_exp) . '">' . PHP_EOL;
     $content .= '		</div>' . PHP_EOL;
     $content .= '	</div>' . PHP_EOL;
     $content .= '</div>' . PHP_EOL;
     $IM = $this->IM;
     $Module = $this;
     include $this->Module->getPath() . '/views/modal.php';
     echo '</form>' . PHP_EOL;
     echo '<script>Donation.showInit();</script>';
     $context = ob_get_contents();
     ob_end_clean();
     return $context;
 }
Esempio n. 19
0
		<tr>

			<td><?php 
echo GetString("EncodingType");
?>
:</td>

			<td><input type="text" id="inp_encode" style="width:200px" /></td>

		</tr>

		<tr>

			<td><?php 
echo GetString("Target");
?>
:</td>

			<td>				

				<select id="sel_target" name="sel_target">

					<option value=""></option>

					<option value="_blank">_blank</option>

					<option value="_self">_self</option>

					<option value="_top">_top</option>
Esempio n. 20
0
/**
 * http://developer.valvesoftware.com/wiki/Source_RCON_Protocol
 *
 * @param string $ip
 * @param string $port
 * @param string $rcon
 * @param string $string1
 * @param string $string2
 * @return array $data
 */
function Source_Rcon($ip, $port, $rcon, $string1, $string2 = NULL)
{
    $reqid = mt_rand(0, 255);
    $reqtype = 3;
    # add the zero
    /*
    $rcon .= "\x00";
    $string1 .= "\x00";
    $string2 .= "\x00";
    */
    if (!($server_connection = fsockopen("udp://" . $ip, $port))) {
        return false;
    }
    socket_set_blocking($server_connection, 1);
    # Time out after 5 seconds
    socket_set_timeout($server_connection, 5);
    # First we need to auth
    # Auth packet creation
    $command = pack('VV', $reqid, $reqtype) . $rcon . $string2;
    $cmdlen = strlen($command);
    $command = pack('V', $cmdlen) . $command;
    # Request Auth
    fwrite($server_connection, $command, strlen($command));
    # Get the thingy packet that currently has no use
    $data = Get_A_Packet($server_connection);
    # Get auth packet
    $data = Get_A_Packet($server_connection);
    $datastart = 0;
    $recsize = GetInt32($data, $datastart);
    $recid = GetInt32($data, $datastart);
    $rectype = GetInt32($data, $datastart);
    $recstring1 = GetString($data, $datastart);
    $recstring2 = GetString($data, $datastart);
    # If we don't get what we expect, we must have failed?
    if ($rectype != 2) {
        fclose($server_connection);
        return false;
    }
    # If the packet ID's dont match, auth failed
    if ($recid != $reqid) {
        fclose($server_connection);
        return false;
    }
    # Prepare new command
    $reqid = mt_rand(0, 255);
    $reqtype = 2;
    $command = pack('VV', $reqid, $reqtype) . $string1 . $string2;
    $cmdlen = strlen($command);
    $command = pack('V', $cmdlen) . $command;
    # Send new command
    fwrite($server_connection, $command, strlen($command));
    $data = '';
    # i will increment every loop
    # t will only increment when a packet was received.
    # should something break, it should.. in theory, kill itself
    # but hopefully something will have killed it earlier
    $i = 0;
    $t = 1;
    #while ($i <= $t)
    #{
    #$i++;
    $packet = '';
    #if ($packet = Get_A_Packet($server_connection))
    $packet = Get_A_Packet($server_connection);
    #{
    #	$t++;
    #}
    $datastart = 0;
    $recsize = GetInt32($packet, $datastart);
    $recid = GetInt32($packet, $datastart);
    if ($recid == $reqid) {
        # I wonder how long it will be till this gets triggered
        # Maybe? Never? Fear the bugs in the protocol!
        # Header packet
        $rectype = GetInt32($packet, $datastart);
        $data .= GetString($packet, $datastart);
        $recstring2 = GetString($packet, $datastart);
    } else {
        $data .= $packet;
    }
    #}
    # Make sure socket is closed
    fclose($server_connection);
    return $data;
}
Esempio n. 21
0
 function doProcess($action)
 {
     $results = new stdClass();
     $values = new stdClass();
     if ($action == 'listUrl') {
         $menu = Request('menu');
         $page = Request('page');
         $page = $this->IM->getPages($menu, $page);
         $oKey = Request('oKey');
         $oKeyword = Request('oKeyword');
         $oCategory = Request('oCategory');
         $oSort = Request('oSort');
         $keyword = Request('keyword');
         $category = Request('category');
         $sort = Request('sort');
         $key = Request('key');
         $keyword = Request('keyword');
         $p = Request('p') ? Request('p') : 1;
         $queryString = 'menu=' . $page->menu . '&page=' . $page->page . '&keyword=' . $keyword . '&category=' . $category . '&sort=' . $sort . '&p=' . $p;
         if ($oKeyword != $keyword || $oCategory != $category || $oSort != $sort) {
             $p = 1;
         }
         $default = array();
         if (strlen($keyword) == 0) {
             $default['keyword'] = '';
         }
         if ($sort == 'update') {
             $default['sort'] = '';
         }
         if (isset($page->context->config->category) == true && $page->context->config->category == $category) {
             $default['category'] = '';
         }
         $url = $this->IM->getUrl($page->menu, $page->page, 'list', $p) . $this->IM->getQueryString($default, $queryString);
         $results->success = true;
         $results->url = $url;
     }
     if ($action == 'postWrite') {
         $values->errors = array();
         $values->idx = Request('idx');
         $values->did = Request('did');
         $values->menu = Request('menu');
         $values->page = Request('page');
         $values->category = Request('category');
         $values->homepage = Request('homepage');
         $values->license = Request('license') ? Request('license') : ($values->errors['license'] = $this->getLanguage('postWrite/help/license/error'));
         $values->price = Request('price') ? preg_match('/[1-9]+[0-9]*/', Request('price')) == true ? Request('price') : ($values->errors['price'] = $this->getLanguage('postWrite/help/price/error')) : 0;
         $values->title = Request('title') ? Request('title') : ($values->errors['title'] = $this->getLanguage('postWrite/help/title/error'));
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('postWrite/help/content/error'));
         $values->attachments = is_array(Request('attachments')) == true ? Request('attachments') : array();
         for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
             $values->attachments[$i] = Decoder($values->attachments[$i]);
         }
         $values->content = $this->encodeContent($values->content, $values->attachments);
         $values->dataroom = $this->getDataroom($values->did);
         if ($values->dataroom->use_category == 'USED') {
             if ($values->category == null || preg_match('/^[1-9]+[0-9]*$/', $values->category) == false) {
                 $values->errors['category'] = $this->getLanguage('postWrite/help/category/error');
             }
         } else {
             $values->category = 0;
         }
         if (isset($_FILES['logo']['tmp_name']) == true && $_FILES['logo']['tmp_name']) {
             $checkImage = getimagesize($_FILES['logo']['tmp_name']);
             if (in_array($checkImage[2], array(1, 2, 3)) == false) {
                 $values->errors['logo'] = $this->getLanguage('postWrite/help/logo/error');
             }
         }
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif (empty($values->errors) == true) {
             $results->success = true;
             $mHash = new Hash();
             $insert = array();
             $insert['did'] = $values->did;
             $insert['category'] = $values->category;
             $insert['midx'] = $this->IM->getModule('member')->getLogged();
             $insert['title'] = $values->title;
             $insert['content'] = $values->content;
             $insert['search'] = GetString($values->content, 'index');
             $insert['homepage'] = $values->homepage;
             $insert['license'] = $values->license;
             $insert['price'] = $values->price;
             if ($values->idx == null) {
                 $post = null;
                 if ($this->checkPermission('write') == false) {
                     $results->success = false;
                     $results->message = $this->getLanguage('error/forbidden');
                 } else {
                     $oCategory = null;
                     $reg_date = time();
                     $insert['reg_date'] = $reg_date;
                     $insert['last_update'] = 0;
                     $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                     $values->idx = $this->db()->insert($this->table->post, $insert)->execute();
                 }
                 $this->IM->setArticle('dataroom', $values->did, 'post', $values->idx, 0);
                 $this->IM->getModule('member')->sendPoint(null, $values->dataroom->post_point, 'dataroom', 'post', array('idx' => $values->idx));
                 $this->IM->getModule('member')->addActivity(null, $values->dataroom->post_exp, 'dataroom', 'post', array('idx' => $values->idx));
             } else {
                 $post = $this->getPost($values->idx);
                 $oCategory = $post->category;
                 $reg_date = $post->reg_date;
                 if ($this->checkPermission('modify') == false && $post->midx != $this->IM->getModule('member')->getLogged()) {
                     $results->success = false;
                     $results->message = $this->getLanguage('error/forbidden');
                 }
                 if ($results->success == true) {
                     $this->db()->update($this->table->post, $insert)->where('idx', $post->idx)->execute();
                     $this->IM->setArticle('dataroom', $values->did, 'post', $values->idx, $post->last_update);
                     if ($post->midx != $this->IM->getModule('member')->getLogged()) {
                         $this->IM->getModule('push')->sendPush($post->midx, 'dataroom', 'post_modify', $values->idx, array('from' => $this->IM->getModule('member')->getLogged()));
                     }
                     $this->IM->getModule('member')->addActivity(null, 0, 'dataroom', 'post_modify', array('idx' => $values->idx));
                 }
             }
             if ($results->success == true) {
                 if (isset($_FILES['logo']['tmp_name']) == true && $_FILES['logo']['tmp_name']) {
                     $fileName = $_FILES['logo']['name'];
                     $tempFileName = $this->IM->getModule('attachment')->getTempPath(true) . '/' . md5_file($_FILES['logo']['tmp_name']);
                     if ($this->IM->getModule('attachment')->createThumbnail($_FILES['logo']['tmp_name'], $tempFileName, 500, 0, true) == true) {
                         if ($post == null || $post->logo == 0) {
                             $logoIdx = $this->IM->getModule('attachment')->fileSave($fileName, $tempFileName, 'dataroom', 'logo');
                         } else {
                             $logoIdx = $this->IM->getModule('attachment')->fileReplace($post->logo, $fileName, $tempFileName);
                         }
                         $this->db()->update($this->table->post, array('logo' => $logoIdx))->where('idx', $values->idx)->execute();
                         $this->IM->getModule('attachment')->filePublish($logoIdx);
                     }
                 }
                 for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
                     if ($this->db()->select($this->table->attachment)->where('idx', $values->attachments[$i])->count() == 0) {
                         $this->db()->insert($this->table->attachment, array('idx' => $values->attachments[$i], 'did' => $values->did, 'type' => 'POST', 'parent' => $values->idx))->execute();
                     }
                     $this->IM->getModule('attachment')->filePublish($values->attachments[$i]);
                 }
                 if ($oCategory != 0 && $oCategory != $values->category) {
                     $lastPost = $this->db()->select($this->table->post)->where('category', $oCategory)->orderBy('last_update', 'desc')->get();
                     $postnum = count($lastPost);
                     $lastPostTime = $postnum > 0 ? $lastPost[0]->last_update : 0;
                     $this->db()->update($this->table->category, array('postnum' => $postnum, 'last_post' => $lastPostTime))->where('idx', $oCategory)->execute();
                 }
                 if ($values->category != 0 && $oCategory != $values->category) {
                     $lastPost = $this->db()->select($this->table->post)->where('category', $values->category)->orderBy('last_update', 'desc')->get();
                     $postnum = count($lastPost);
                     $lastPostTime = $postnum > 0 ? $lastPost[0]->last_update : 0;
                     $this->db()->update($this->table->category, array('postnum' => $postnum, 'last_post' => $lastPostTime))->where('idx', $values->category)->execute();
                 }
                 $postnum = $this->db()->select($this->table->post)->where('did', $values->did)->count();
                 $this->db()->update($this->table->dataroom, array('postnum' => $postnum))->where('did', $values->did)->execute();
                 $page = $this->IM->getPages($values->menu, $values->page);
                 if ($page->context->config == null) {
                     $results->redirect = $this->IM->getUrl($values->menu, $values->page, $post == null ? 'version' : 'view', $values->idx);
                 } elseif ($page->context->config->category == $values->category) {
                     $results->redirect = $this->IM->getUrl($values->menu, $values->page, $post == null ? 'version' : 'view', $values->idx);
                 } else {
                     $redirectPage = $this->getPostPage($values->idx);
                     $results->redirect = $this->IM->getUrl($redirectPage->menu, $redirectPage->page, $post == null ? 'version' : 'view', $values->idx);
                 }
             }
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/required');
             $results->errors = $values->errors;
         }
     }
     if ($action == 'postDelete') {
         $values->idx = Request('idx');
         $post = $this->getPost($values->idx);
         if ($post == null) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } elseif ($this->checkPermission('post_delete') == true || $post->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = true;
             $results->modalHtml = $this->getDelete('post', $values->idx);
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         }
     }
     if ($action == 'versionWrite') {
         $values->errors = array();
         $values->idx = Request('idx');
         $values->parent = Request('parent');
         $values->did = Request('did');
         $values->menu = Request('menu');
         $values->page = Request('page');
         $values->version = preg_match('/^[0-9]+\\.[0-9]+(\\.[0-9]+)?$/', Request('version')) == true ? Request('version') : ($values->errors['version'] = $this->getLanguage('versionWrite/help/history/error'));
         $values->history = Request('history') ? Request('history') : ($values->errors['history'] = $this->getLanguage('versionWrite/help/history/error'));
         $values->dataroom = $this->getDataroom($values->did);
         $values->post = $this->getPost($values->parent);
         if (version_compare($values->post->last_version, $values->version, '>=') == true) {
             $values->errors['version'] = $this->getLanguage('versionWrite/help/version/lowVersion');
         }
         if (isset($_FILES['file']['tmp_name']) == true && $_FILES['file']['tmp_name']) {
             if ($this->IM->getModule('attachment')->getFileMime($_FILES['file']['tmp_name']) != 'application/zip') {
                 $errors['file'] = $this->getLanguage('versionWrite/help/file/notzip');
             }
         }
         if (empty($values->errors) == true) {
             $results->success = true;
             $mHash = new Hash();
             $insert = array();
             $insert['did'] = $values->did;
             $insert['parent'] = $values->parent;
             $insert['version'] = $values->version;
             $insert['history'] = $values->history;
             if ($values->idx == null) {
                 if ($this->checkPermission('write') == false && $values->post->midx != $this->IM->getModule('member')->getLogged()) {
                     $results->success = false;
                     $results->message = $this->getLanguage('error/forbidden');
                 } else {
                     $reg_date = time();
                     $insert['reg_date'] = $reg_date;
                     $values->idx = $this->db()->insert($this->table->post_version, $insert)->execute();
                     $results->redirect = $this->IM->getUrl($values->menu, $values->page, 'view', $values->parent);
                 }
                 // Action Register
             } else {
                 $oCategory = $post->category;
                 $reg_date = $post->reg_date;
                 if ($this->checkPermission('post_modify') == false && ($post->midx != 0 && $post->midx != $this->IM->getModule('member')->getLogged())) {
                     $results->success = false;
                     $results->message = $this->getLanguage('error/forbidden');
                 } elseif ($post->midx == 0) {
                     if ($mHash->password_validate($values->password, $post->password) == false) {
                         $results->success = false;
                         $results->errors = array('password' => $this->getLanguage('error/incorrectPassword'));
                         $results->message = $this->getLanguage('error/incorrectPassword');
                     }
                 }
                 if ($results->success == true) {
                     if ($this->IM->getModule('member')->isLogged() == false) {
                         $insert['name'] = $values->name;
                         $insert['password'] = $values->password ? $mHash->password_hash($values->password) : '';
                         $insert['email'] = $values->email;
                         $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                     }
                     $this->db()->update($this->table->post, $insert)->where('idx', $post->idx)->execute();
                 }
                 $insert['reg_date'] = $post['reg_date'];
             }
             if ($results->success == true) {
                 if (isset($_FILES['file']['tmp_name']) == true && $_FILES['file']['tmp_name']) {
                     $fileName = $_FILES['file']['name'];
                     $fileIdx = $this->IM->getModule('attachment')->fileSave($fileName, $_FILES['file']['tmp_name'], 'dataroom', 'file');
                     $this->db()->update($this->table->post_version, array('file' => $fileIdx))->where('idx', $values->idx)->execute();
                 }
                 $lastVersion = $this->db()->select($this->table->post_version)->where('parent', $values->parent)->orderBy('reg_date', 'desc')->getOne();
                 $this->db()->update($this->table->post, array('last_version' => $lastVersion->version, 'last_update' => $lastVersion->reg_date))->where('idx', $values->parent)->execute();
                 if ($values->post->category != 0) {
                     $this->db()->update($this->table->category, array('last_post' => $lastVersion->reg_date))->where('idx', $values->post->category)->execute();
                 }
                 $lastPost = $this->db()->select($this->table->post)->where('did', $values->did)->orderBy('last_update', 'desc')->getOne();
                 $this->db()->update($this->table->dataroom, array('last_post' => $lastPost->last_update))->where('did', $values->did)->execute();
                 $this->IM->setArticle('dataroom', $values->did, 'post', $values->post->idx, time());
                 $page = $this->IM->getPages($values->menu, $values->page);
                 $results->redirect = $this->IM->getUrl($values->menu, $values->page, 'view', $values->parent);
             }
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/required');
             $results->errors = $values->errors;
         }
     }
     if ($action == 'getQna') {
         $values->get = Request('get');
         if ($values->get == 'page') {
             $values->parent = Request('parent');
             $values->post = $this->getPost($values->parent);
             $values->dataroom = $this->getDataroom($values->post->did);
             $values->qnalimit = $values->dataroom->qnalimit;
             $values->page = Request('page');
             $values->qnas = $this->getQnaPage($values->parent, $values->page, $values->qnalimit);
             if ($values->page > 1 && count($values->qnas) == 0) {
                 while ($values->page > 1) {
                     $values->page = $values->page - 1;
                     $values->qnas = $this->getMentPage($values->parent, $values->page, $values->qnalimit);
                     if (count($values->qnas) > 0) {
                         break;
                     }
                 }
             }
             if (count($values->qnas) > 0) {
                 $results->page = $values->page;
             }
         } elseif ($values->get == 'idx') {
             $values->idx = Request('idx');
             $qna = $this->db()->select($this->table->question)->where('idx', $values->idx)->getOne();
             $values->dataroom = $this->getDataroom($qna->did);
             $values->qnalimit = $values->dataroom->qnalimit;
             $values->parent = $qna->parent;
             if ($qna != null) {
                 $values->post = $this->getPost($values->parent);
                 $prevCount = $this->db()->select($this->table->question)->where('parent', $qna->parent)->where('idx', $qna->idx, '>')->count();
                 $values->page = floor($prevCount / $values->qnalimit) + 1;
                 $values->qnas = $this->getQnaPage($values->parent, $values->page, $values->qnalimit);
                 $results->page = $values->page;
             } else {
                 $results->page = null;
                 $results->mentHtml = '<div class="empty">' . $this->getLanguage('qnaList/empty') . '</div>';
             }
         }
         if (count($values->qnas) == 0) {
             $results->page = null;
             $results->qnaHtml = '<div class="empty">' . $this->getLanguage('qnaList/empty') . '</div>';
         } else {
             $results->qnaHtml = '';
             for ($i = 0, $loop = count($values->qnas); $i < $loop; $i++) {
                 $results->qnaHtml .= $this->getQnaItem($values->qnas[$i]);
             }
         }
         $results->success = true;
         $results->parent = $values->parent;
         if ($results->page != null) {
             $results->qnaCount = number_format($values->post->qna);
         }
         $results->pagination = $this->getQnaPagination($results->parent, $results->page);
     }
     if ($action == 'getQnaView') {
         $values->idx = Request('idx');
         $results->success = true;
         $results->idx = $values->idx;
         $results->qnaHtml = $this->getQnaView($values->idx);
     }
     if ($action == 'getQnaWrite') {
         $values->parent = Request('parent') ? Request('parent') : null;
         $values->post = $this->getPost($values->parent);
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif ($this->checkPermission('qna_write') == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         } elseif ($values->post->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = false;
             $results->message = $this->getLanguage('error/mypost');
         } else {
             $results->success = true;
             $results->parent = $values->parent;
             $results->qnaHtml = $this->getQnaWrite($values->parent);
         }
     }
     if ($action == 'qnaWrite') {
         $values->errors = array();
         $values->parent = Request('parent');
         $values->post = $this->getPost($values->parent);
         $values->dataroom = $this->getDataroom($values->post->did);
         $values->did = $values->dataroom->did;
         $values->title = Request('title') ? Request('title') : ($values->errors['title'] = $this->getLanguage('postWrite/help/title/error'));
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('postWrite/help/content/error'));
         $values->attachments = is_array(Request('attachments')) == true ? Request('attachments') : array();
         for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
             $values->attachments[$i] = Decoder($values->attachments[$i]);
         }
         $values->content = $this->encodeContent($values->content, $values->attachments);
         if (empty($values->errors) == true) {
             $results->success = true;
             $mHash = new Hash();
             $insert = array();
             $insert['did'] = $values->did;
             $insert['parent'] = $values->parent;
             $insert['title'] = $values->title;
             $insert['content'] = $values->content;
             $insert['search'] = GetString($values->content, 'index');
             if ($this->IM->getModule('member')->isLogged() == false) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notLogged');
             } elseif ($this->checkPermission('qna_write') == false) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/forbidden');
             } elseif ($values->post->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/mypost');
             } else {
                 $insert['reg_date'] = time();
                 $insert['midx'] = $this->IM->getModule('member')->getLogged();
                 $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                 $values->idx = $this->db()->insert($this->table->question, $insert)->execute();
             }
             if ($results->success == true) {
                 for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
                     if ($this->db()->select($this->table->attachment)->where('idx', $values->attachments[$i])->count() == 0) {
                         $this->db()->insert($this->table->attachment, array('idx' => $values->attachments[$i], 'did' => $values->did, 'type' => 'QUESTION', 'parent' => $values->idx))->execute();
                     }
                 }
                 $qnanum = $this->db()->select($this->table->question)->where('parent', $values->parent)->count();
                 $this->db()->update($this->table->post, array('qna' => $qnanum))->where('idx', $values->parent)->execute();
                 $this->IM->getModule('push')->sendPush($values->post->midx, 'dataroom', 'question', $values->post->idx, array('from' => $this->IM->getModule('member')->getLogged(), 'idx' => $values->idx));
                 $results->idx = $values->idx;
             }
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/required');
             $results->errors = $values->errors;
         }
     }
     if ($action == 'qnaAnswer') {
         $values->errors = array();
         $values->parent = Request('parent');
         $values->question = $this->db()->select($this->table->question)->where('idx', $values->parent)->getOne();
         $values->post = $this->getPost($values->question->parent);
         $values->dataroom = $this->getDataroom($values->post->did);
         $values->did = $values->dataroom->did;
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('postWrite/help/content/error'));
         $values->attachments = is_array(Request('attachments')) == true ? Request('attachments') : array();
         for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
             $values->attachments[$i] = Decoder($values->attachments[$i]);
         }
         $values->content = $this->encodeContent($values->content, $values->attachments);
         if (empty($values->errors) == true) {
             $results->success = true;
             $mHash = new Hash();
             $insert = array();
             $insert['did'] = $values->did;
             $insert['parent'] = $values->parent;
             $insert['content'] = $values->content;
             if ($this->IM->getModule('member')->isLogged() == false) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notLogged');
             } elseif ($this->checkPermission('qna_answer') == false && $values->post->midx != $this->IM->getModule('member')->getLogged()) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/forbidden');
             } elseif ($values->question->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/myquestion');
             } else {
                 $insert['reg_date'] = time();
                 $insert['midx'] = $this->IM->getModule('member')->getLogged();
                 $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                 $values->idx = $this->db()->insert($this->table->answer, $insert)->execute();
             }
             if ($results->success == true) {
                 for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
                     if ($this->db()->select($this->table->attachment)->where('idx', $values->attachments[$i])->count() == 0) {
                         $this->db()->insert($this->table->attachment, array('idx' => $values->attachments[$i], 'did' => $values->did, 'type' => 'ANSWER', 'parent' => $values->idx))->execute();
                     }
                 }
                 $this->db()->update($this->table->question, array('has_answer' => 'TRUE'))->where('idx', $values->parent)->execute();
                 $this->IM->getModule('push')->sendPush($values->question->midx, 'dataroom', 'answer', $values->question->idx, array('from' => $this->IM->getModule('member')->getLogged(), 'idx' => $values->idx));
                 $results->idx = $values->idx;
                 $results->parent = $values->parent;
             }
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/required');
             $results->errors = $values->errors;
         }
     }
     if ($action == 'getMent') {
         $values->get = Request('get');
         if ($values->get == 'page') {
             $values->parent = Request('parent');
             $values->post = $this->getPost($values->parent);
             $values->dataroom = $this->getDataroom($values->post->did);
             $values->mentlimit = $values->dataroom->mentlimit;
             $values->page = Request('page');
             $values->ments = $this->getMentPage($values->parent, $values->page, $values->mentlimit);
             if ($values->page > 1 && count($values->ments) == 0) {
                 while ($values->page > 1) {
                     $values->page = $values->page - 1;
                     $values->ments = $this->getMentPage($values->parent, $values->page, $values->mentlimit);
                     if (count($values->ments) > 0) {
                         break;
                     }
                 }
             }
             if (count($values->ments) == 0) {
                 $results->page = null;
                 $results->mentHtml = '<div class="empty">' . $this->getLanguage('mentList/empty') . '</div>';
             } else {
                 $results->page = $values->page;
             }
         } elseif ($values->get == 'idx') {
             $values->idx = Request('idx');
             $ment = $this->getMent($values->idx);
             $values->parent = $ment->parent;
             if ($ment != null) {
                 $values->page = $this->getMentPosition($values->idx);
                 $values->post = $this->getPost($values->parent);
                 $values->dataroom = $this->getDataroom($values->post->did);
                 $values->mentlimit = $values->dataroom->mentlimit;
                 $values->ments = $this->getMentPage($values->parent, $values->page, $values->mentlimit);
                 $results->page = $values->page;
             } else {
                 $results->page = null;
                 $results->mentHtml = '<div class="empty">' . $this->getLanguage('mentList/empty') . '</div>';
             }
         }
         $results->success = true;
         $results->parent = $values->parent;
         $results->mentCount = number_format($values->post->ment);
         $results->idxs = array();
         $results->ments = array();
         if (empty($values->mentHtml) == false) {
             $results->mentHtml = $values->mentHtml;
         }
         if ($results->page !== null) {
             for ($i = 0, $loop = count($values->ments); $i < $loop; $i++) {
                 $results->ments[$i] = array('idx' => $values->ments[$i]->idx, 'modify_date' => $values->ments[$i]->modify_date, 'html' => $this->getMentItem($values->ments[$i]));
                 $results->idxs[$i] = $values->ments[$i]->idx;
             }
         }
         $results->pagination = $this->getMentPagination($results->parent, $results->page);
     }
     if ($action == 'getMentDepth') {
         $idx = Request('idx');
         $parent = $this->getMent($idx);
         if ($parent == null || $parent->is_delete == 'TRUE') {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } elseif ($parent->depth >= 10) {
             $results->success = false;
             $results->message = $this->getLanguage('mentWrite/overdepth');
         } else {
             $results->success = true;
             $results->depth = $parent->depth;
             $results->parent = $parent->parent;
             $results->source = $idx;
         }
     }
     if ($action == 'mentWrite') {
         $values->errors = array();
         $values->idx = Request('idx');
         $values->source = Request('source');
         $values->parent = Request('parent');
         $values->post = $this->getPost($values->parent);
         $values->dataroom = $this->getDataroom($values->post->did);
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('postWrite/help/content/error'));
         $values->attachments = is_array(Request('attachments')) == true ? Request('attachments') : array();
         for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
             $values->attachments[$i] = Decoder($values->attachments[$i]);
         }
         if ($values->source) {
             $sourceData = $this->getMent($values->source);
             if ($sourceData == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('mentWrite/deleteSource');
             }
         }
         $values->content = $this->encodeContent($values->content, $values->attachments);
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif ($this->checkPermission('ment_write') == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         } elseif (empty($values->errors) == true) {
             $mHash = new Hash();
             $insert = array();
             $insert['did'] = $values->post->did;
             $insert['parent'] = $values->parent;
             $insert['midx'] = $this->IM->getModule('member')->getLogged();
             $insert['content'] = $values->content;
             $insert['search'] = GetString($values->content, 'index');
             if ($values->idx == null) {
                 $insert['reg_date'] = time();
                 $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                 $values->idx = $this->db()->insert($this->table->ment, $insert)->execute();
                 if ($values->source) {
                     $sourceData = $this->getMent($values->source);
                     $head = $sourceData->head;
                     $depth = $sourceData->depth + 1;
                     $source = $sourceData->idx;
                     if ($depth > 1) {
                         $depthData = $this->db()->select($this->table->ment_depth)->where('head', $sourceData->head)->where('arrange', $sourceData->arrange, '>')->where('depth', $sourceData->depth, '<=')->orderBy('arrange', 'asc')->getOne();
                         if ($depthData == null) {
                             $arrange = $values->idx;
                         } else {
                             $arrange = $depthData->arrange;
                             $this->db()->update($this->table->ment_depth, array('arrange' => $this->db()->inc()))->where('head', $sourceData->head)->where('arrange', $arrange, '>=')->execute();
                         }
                     } else {
                         $arrange = $values->idx;
                     }
                 } else {
                     $head = $values->idx;
                     $arrange = $values->idx;
                     $depth = 0;
                     $source = 0;
                 }
                 $this->db()->insert($this->table->ment_depth, array('idx' => $values->idx, 'parent' => $values->parent, 'head' => $head, 'arrange' => $arrange, 'depth' => $depth, 'source' => $source))->execute();
                 if ($values->post->midx != $this->IM->getModule('member')->getLogged()) {
                     $this->IM->getModule('push')->sendPush($values->post->midx, 'dataroom', 'ment', $values->post->idx, array('from' => $this->IM->getModule('member')->getLogged()));
                 }
                 $this->IM->getModule('member')->sendPoint(null, $values->dataroom->ment_point, 'dataroom', 'ment', array('idx' => $values->idx));
                 $this->IM->getModule('member')->addActivity(null, $values->dataroom->ment_exp, 'dataroom', 'ment', array('idx' => $values->idx));
                 if ($source != 0 && $sourceData->midx != 0 && $sourceData->midx != $this->IM->getModule('member')->getLogged()) {
                     $this->IM->getModule('push')->sendPush($sourceData->midx, 'dataroom', 'replyment', $values->post->idx, array('idx' => $values->idx, 'from' => $this->IM->getModule('member')->getLogged()));
                 }
                 $results->success = true;
             } else {
                 $ment = $this->getMent($values->idx);
                 $values->dataroom = $this->getDataroom($ment->did);
                 if ($this->checkPermission('ment_modify') == false && ($ment->midx != 0 && $ment->midx != $this->IM->getModule('member')->getLogged())) {
                     $results->success = false;
                     $results->message = $this->getLanguage('error/forbidden');
                 } elseif ($ment->midx == 0) {
                     if ($mHash->password_validate($values->password, $ment->password) == false) {
                         $results->success = false;
                         $results->errors = array('password' => $this->getLanguage('error/incorrectPassword'));
                         $results->message = $this->getLanguage('error/incorrectPassword');
                     }
                 }
                 if ($results->success == true) {
                     if ($this->IM->getModule('member')->isLogged() == false) {
                         $insert['name'] = $values->name;
                         $insert['password'] = $values->password ? $mHash->password_hash($values->password) : '';
                         $insert['email'] = $values->email;
                         $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                     }
                     $insert['modify_date'] = time();
                     $this->db()->update($this->table->ment, $insert)->where('idx', $ment->idx)->execute();
                     if ($ment->midx != $this->IM->getModule('member')->getLogged()) {
                         $this->IM->getModule('push')->sendPush($ment->midx, 'dataroom', 'ment_modify', $values->idx, array('from' => $this->IM->getModule('member')->getLogged()));
                     }
                     $this->IM->getModule('member')->addActivity(null, $values->dataroom->ment_exp, 'dataroom', 'ment_modify', array('idx' => $values->idx));
                 }
                 $results->success = true;
             }
             if ($results->success == true) {
                 for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
                     if ($this->db()->select($this->table->attachment)->where('idx', $values->attachments[$i])->count() == 0) {
                         $this->db()->insert($this->table->attachment, array('idx' => $values->attachments[$i], 'did' => $values->post->did, 'type' => 'MENT', 'parent' => $values->idx))->execute();
                     }
                 }
                 $mentnum = $this->db()->select($this->table->ment)->where('parent', $values->parent)->where('is_delete', 'FALSE')->count();
                 $this->db()->update($this->table->post, array('ment' => $mentnum))->where('idx', $values->parent)->execute();
                 $this->IM->setArticle('dataroom', $values->dataroom->did, 'ment', $values->idx, time());
                 $results->message = $this->getLanguage('mentWrite/success');
                 $results->idx = $values->idx;
                 $results->parent = $values->parent;
                 $results->page = $this->getMentPosition($values->idx);
             }
         } elseif (count($values->errors) > 0) {
             $results->success = false;
             $results->message = $this->getLanguage('error/required');
             $results->errors = $values->errors;
         }
     }
     if ($action == 'mentModify') {
         $values->idx = Request('idx');
         $values->password = Request('password');
         $ment = $this->getMent($values->idx);
         if ($ment == null) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } elseif ($this->checkPermission('ment_modify') == true || $ment->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = true;
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         }
         if ($results->success == true) {
             $ment->content = $this->getArticleContent($ment->content);
             $attachments = $this->db()->select($this->table->attachment)->where('parent', $ment->idx)->where('type', 'MENT')->get();
             for ($i = 0, $loop = count($attachments); $i < $loop; $i++) {
                 $attachments[$i] = $attachments[$i]->idx;
             }
             $ment->attachment = Encoder(json_encode($attachments));
             $results->data = $ment;
         }
     }
     if ($action == 'mentDelete') {
         $values->idx = Request('idx');
         $ment = $this->getMent($values->idx);
         if ($ment == null) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } elseif ($this->checkPermission('ment_delete') == true || $ment->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = true;
             $results->modalHtml = $this->getDelete('ment', $values->idx);
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         }
     }
     if ($action == 'downloadConfirm') {
         $values->idx = Request('idx');
         $values->version = Request('version');
         $values->confirm = Request('confirm');
         $values->post = $this->getPost($values->idx);
         $results->success = true;
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif ($this->checkPermission('download') == false && $values->post->midx != $this->IM->getModule('member')->getLogged()) {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         }
         if ($results->success == true) {
             if ($values->version == 'latest') {
                 $values->post_version = $this->db()->select($this->table->post_version)->where('parent', $values->idx)->orderBy('reg_date', 'desc')->getOne();
             } else {
                 $values->post_version = $this->db()->select($this->table->post_version)->where('parent', $values->idx)->where('version', $values->version)->getOne();
             }
             if ($values->post_version == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($values->post->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = true;
                 $results->downloadUrl = $this->IM->getProcessUrl('dataroom', 'download', array('idx' => $values->idx, 'version' => $values->post_version->version));
             } else {
                 $values->purchase = $this->db()->select($this->table->purchase)->where('parent', $values->idx)->where('midx', $this->IM->getModule('member')->getLogged())->getOne();
                 if ($values->purchase == null) {
                     if ($values->confirm == 'TRUE') {
                         $price = $values->post->price;
                         if ($price == 0 || $this->IM->getModule('member')->sendPoint(null, $price * -1, 'dataroom', 'purchase', array('idx' => $values->idx)) == true) {
                             $this->db()->insert($this->table->purchase, array('parent' => $values->idx, 'midx' => $this->IM->getModule('member')->getLogged(), 'price' => $price, 'reg_date' => time()))->execute();
                             if ($price > 0) {
                                 $this->IM->getModule('member')->sendPoint($values->post->midx, round($price * 0.7), 'dataroom', 'sale', array('idx' => $values->idx), true);
                             }
                             $results->success = true;
                             $results->downloadUrl = $this->IM->getProcessUrl('dataroom', 'download', array('idx' => $values->idx, 'version' => $values->post_version->version));
                             $this->IM->getModule('member')->addActivity(null, 0, 'dataroom', 'purchase', array('idx' => $values->idx));
                         } else {
                             $results->success = false;
                             $results->message = $this->getLanguage('error/notEnoughPoint');
                         }
                     } else {
                         $results->success = true;
                         $results->modalHtml = $this->getDownload($values->idx, $values->post_version->version);
                     }
                 } else {
                     $results->success = true;
                     $results->downloadUrl = $this->IM->getProcessUrl('dataroom', 'download', array('idx' => $values->idx, 'version' => $values->post_version->version));
                 }
             }
         }
     }
     if ($action == 'download') {
         $values->idx = Request('idx');
         $values->version = Request('version');
         $values->post = $this->getPost($values->idx);
         if ($this->checkPermission('download') == false && $values->post->midx != $this->IM->getModule('member')->getLogged()) {
             header("HTTP/1.1 403 Forbidden");
             exit;
         }
         $values->post_version = $this->db()->select($this->table->post_version)->where('parent', $values->idx)->where('version', $values->version)->getOne();
         if ($values->post_version == null) {
             header("HTTP/1.1 404 Not Found");
         } elseif ($values->post->midx == $this->IM->getModule('member')->getLogged()) {
             $this->IM->getModule('attachment')->fileDownload($values->post_version->file, false);
         } else {
             $values->purchase = $this->db()->select($this->table->purchase)->where('parent', $values->idx)->where('midx', $this->IM->getModule('member')->getLogged())->getOne();
             if ($values->purchase == null) {
                 header("HTTP/1.1 403 Forbidden");
             } else {
                 $this->db()->update($this->table->post, array('download' => $this->db()->inc()))->where('idx', $values->idx)->execute();
                 $this->IM->getModule('attachment')->fileDownload($values->post_version->file);
             }
         }
         exit;
     }
     if ($action == 'vote') {
         $values->type = in_array(Request('type'), array('post', 'ment')) == true ? Request('type') : 'post';
         $values->idx = Request('idx');
         $values->vote = in_array(Request('vote'), array('good', 'bad')) == true ? Request('vote') : 'good';
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } else {
             $article = $this->db()->select($this->table->{$values->type})->where('idx', $values->idx)->getOne();
             if ($article == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($article->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = false;
                 $results->message = $this->getLanguage('vote/mypost');
             } else {
                 $check = $this->db()->select($this->table->history)->where('parent', $values->idx)->where('action', 'VOTE')->where('midx', $this->IM->getModule('member')->getLogged())->getOne();
                 if ($check == null) {
                     $this->db()->update($this->table->{$values->type}, array($values->vote => $this->db()->inc()))->where('idx', $values->idx)->execute();
                     $this->db()->insert($this->table->history, array('parent' => $values->idx, 'action' => 'VOTE', 'midx' => $this->IM->getModule('member')->getLogged(), 'result' => strtoupper($values->vote), 'reg_date' => time()))->execute();
                     $results->success = true;
                     $results->message = $this->getLanguage('vote/' . $values->vote);
                     $results->liveUpdate = 'liveUpdateDataroom' . ucfirst($values->type) . ucfirst($values->vote) . $values->idx;
                     $results->liveValue = number_format($values->vote + 1);
                 } else {
                     $results->success = false;
                     $results->message = $this->getLanguage('vote/duplicated');
                     $results->result = $check->result;
                 }
             }
         }
     }
     if ($action == 'delete') {
         $values->idx = Request('idx');
         $values->type = Request('type');
         if ($values->type == 'post') {
             $post = $this->getPost($values->idx);
             if ($post == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($this->checkPermission('post_delete') == true || $post->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = true;
             } else {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/forbidden');
             }
             if ($results->success == true) {
                 $this->db()->update($this->table->post, array('is_delete' => 'TRUE', 'FALSE'))->where('idx', $values->idx)->execute();
             }
             $results->success = true;
         } elseif ($values->type == 'ment') {
             $ment = $this->getMent($values->idx);
             $post = $this->getPost($ment->parent);
             if ($ment == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($this->checkPermission('ment_delete') == true || $ment->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = true;
             } else {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/forbidden');
             }
             if ($results->success == true) {
                 if ($this->checkMentTree($values->idx) == false) {
                     $this->db()->delete($this->table->ment)->where('idx', $values->idx)->execute();
                     $this->db()->delete($this->table->ment_depth)->where('idx', $values->idx)->execute();
                     if ($ment->source != 0) {
                         $source = $this->getMent($ment->source);
                         while ($source->is_delete == 'TRUE') {
                             if ($this->checkMentTree($source->idx) == false) {
                                 $this->db()->delete($this->table->ment)->where('idx', $source->idx)->execute();
                                 $this->db()->delete($this->table->ment_depth)->where('idx', $source->idx)->execute();
                                 if ($source->source != 0) {
                                     $source = $this->getMent($source->source);
                                 } else {
                                     break;
                                 }
                             } else {
                                 break;
                             }
                         }
                     }
                     $results->position = null;
                 } else {
                     $results->position = $values->idx;
                     $this->db()->update($this->table->ment, array('is_delete' => 'TRUE', 'modify_date' => time(), 'content' => '', 'search' => ''))->where('idx', $ment->idx)->execute();
                 }
                 $attachments = $this->db()->select($this->table->attachment)->where('parent', $ment->idx)->where('type', 'MENT')->get();
                 for ($i = 0, $loop = count($attachments); $i < $loop; $i++) {
                     $attachments[$i] = $attachments[$i]->idx;
                 }
                 $this->IM->getModule('attachment')->fileDelete($attachments);
                 $lastMent = $this->db()->select($this->table->ment)->where('parent', $ment->parent)->where('is_delete', 'FALSE')->orderBy('reg_date', 'desc')->get();
                 if (count($lastMent) == 0) {
                     $this->db()->update($this->table->post, array('ment' => 0, 'last_ment' => $post->reg_date))->where('idx', $ment->parent)->execute();
                     $results->parent = $ment->parent;
                 } else {
                     if ($results->position == null) {
                         $position = $this->db()->select($this->table->ment_depth)->where('parent', $ment->parent)->where('head', $ment->head, '<=')->where('arrange', $ment->arrange, '<')->orderBy('head', 'asc')->orderBy('arrange', 'asc')->get();
                         $lastPosition = array_pop($position);
                         $results->position = $lastPosition->idx;
                     }
                     $this->db()->update($this->table->post, array('ment' => count($lastMent), 'last_ment' => $lastMent[0]->reg_date))->where('idx', $ment->parent)->execute();
                 }
                 $this->IM->deleteArticle('dataroom', 'ment', $values->idx);
                 $results->message = $this->getLanguage('mentDelete/success');
             }
         } elseif ($values->type == 'answer') {
             $answer = $this->db()->select($this->table->answer)->where('idx', $values->idx)->getOne();
             if ($answer == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($this->checkPermission('answer_delete') == true || $answer->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = true;
             } else {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/forbidden');
             }
             if ($results->success == true) {
                 $this->db()->delete($this->table->answer)->where('idx', $values->idx)->execute();
                 $attachments = $this->db()->select($this->table->attachment)->where('parent', $answer->idx)->where('type', 'ANSWER')->get();
                 for ($i = 0, $loop = count($attachments); $i < $loop; $i++) {
                     $attachments[$i] = $attachments[$i]->idx;
                 }
                 $this->IM->getModule('attachment')->fileDelete($attachments);
                 $this->db()->update($this->table->question, array('has_answer' => 'FALSE'))->where('idx', $answer->parent)->execute();
                 $results->parent = $answer->parent;
                 $results->message = $this->getLanguage('answerDelete/success');
             }
         }
         $results->type = $values->type;
     }
     $this->IM->fireEvent('afterDoProcess', 'dataroom', $action, $values, $results);
     return $results;
 }
Esempio n. 22
0
			<td colspan="3">

				<textarea id="inp_title" rows="2" cols="20" style="width:260px"></textarea>

			</td>

		</tr>

		<tr>

			<td align="right"></td>

			<td colspan="3">

				<input type="checkbox" id="inp_checked" onclick="ToggleAnchors();" /><?php 
echo GetString("SelectAnchor");
?>

				<br />

				<select size="5" name="allanchors" style="width: 255" id="allanchors" onchange="selectAnchor(this.value);"></select>

			</td>

		</tr>

	</table>									

</fieldset>

<script type="text/javascript" src="../Scripts/Dialog/Dialog_Tag_A.js"></script>
Esempio n. 23
0
 function ParseManifest($cc, $parentManifest)
 {
     LogInfo("Processing manifest info....");
     $xml = $this->GetManifest($cc, $parentManifest);
     // Extract baseUrl from manifest url
     $baseUrl = $xml->xpath("/ns:manifest/ns:baseURL");
     if (isset($baseUrl[0])) {
         $baseUrl = GetString($baseUrl[0]);
     } else {
         $baseUrl = $parentManifest;
         if (strpos($baseUrl, '?') !== false) {
             $baseUrl = substr($baseUrl, 0, strpos($baseUrl, '?'));
         }
         $baseUrl = substr($baseUrl, 0, strrpos($baseUrl, '/'));
     }
     $url = $xml->xpath("/ns:manifest/ns:media[@*]");
     if (isset($url[0]['href'])) {
         $count = 1;
         foreach ($url as $childManifest) {
             if (isset($childManifest['bitrate'])) {
                 $bitrate = floor(GetString($childManifest['bitrate']));
             } else {
                 $bitrate = $count++;
             }
             $entry =& $childManifests[$bitrate];
             $entry['bitrate'] = $bitrate;
             $entry['url'] = AbsoluteUrl($baseUrl, GetString($childManifest['href']));
             $entry['xml'] = $this->GetManifest($cc, $entry['url']);
         }
         unset($entry, $childManifest);
     } else {
         $childManifests[0]['bitrate'] = 0;
         $childManifests[0]['url'] = $parentManifest;
         $childManifests[0]['xml'] = $xml;
     }
     $count = 1;
     foreach ($childManifests as $childManifest) {
         $xml = $childManifest['xml'];
         // Extract baseUrl from manifest url
         $baseUrl = $xml->xpath("/ns:manifest/ns:baseURL");
         if (isset($baseUrl[0])) {
             $baseUrl = GetString($baseUrl[0]);
         } else {
             $baseUrl = $childManifest['url'];
             if (strpos($baseUrl, '?') !== false) {
                 $baseUrl = substr($baseUrl, 0, strpos($baseUrl, '?'));
             }
             $baseUrl = substr($baseUrl, 0, strrpos($baseUrl, '/'));
         }
         $streams = $xml->xpath("/ns:manifest/ns:media");
         foreach ($streams as $stream) {
             $array = array();
             foreach ($stream->attributes() as $k => $v) {
                 $array[strtolower($k)] = GetString($v);
             }
             $array['metadata'] = GetString($stream->{'metadata'});
             $stream = $array;
             if (isset($stream['bitrate'])) {
                 $bitrate = floor($stream['bitrate']);
             } else {
                 if ($childManifest['bitrate'] > 0) {
                     $bitrate = $childManifest['bitrate'];
                 } else {
                     $bitrate = $count++;
                 }
             }
             while (isset($this->media[$bitrate])) {
                 $bitrate++;
             }
             $streamId = isset($stream[strtolower('streamId')]) ? $stream[strtolower('streamId')] : "";
             $mediaEntry =& $this->media[$bitrate];
             $mediaEntry['baseUrl'] = $baseUrl;
             $mediaEntry['url'] = $stream['url'];
             if (isRtmpUrl($mediaEntry['baseUrl']) or isRtmpUrl($mediaEntry['url'])) {
                 LogError("Provided manifest is not a valid HDS manifest");
             }
             // Use embedded auth information when available
             $idx = strpos($mediaEntry['url'], '?');
             if ($idx !== false) {
                 $mediaEntry['queryString'] = substr($mediaEntry['url'], $idx);
                 $mediaEntry['url'] = substr($mediaEntry['url'], 0, $idx);
                 if (strlen($this->auth) != 0 and strcmp($this->auth, $mediaEntry['queryString']) != 0) {
                     LogDebug("Manifest overrides 'auth': " . $mediaEntry['queryString']);
                 }
             } else {
                 $mediaEntry['queryString'] = $this->auth;
             }
             if (isset($stream[strtolower('bootstrapInfoId')])) {
                 $bootstrap = $xml->xpath("/ns:manifest/ns:bootstrapInfo[@id='" . $stream[strtolower('bootstrapInfoId')] . "']");
             } else {
                 $bootstrap = $xml->xpath("/ns:manifest/ns:bootstrapInfo");
             }
             if (isset($bootstrap[0]['url'])) {
                 $mediaEntry['bootstrapUrl'] = AbsoluteUrl($mediaEntry['baseUrl'], GetString($bootstrap[0]['url']));
                 if (strpos($mediaEntry['bootstrapUrl'], '?') === false) {
                     $mediaEntry['bootstrapUrl'] .= $this->auth;
                 }
             } else {
                 $mediaEntry['bootstrap'] = base64_decode(GetString($bootstrap[0]));
             }
             if (isset($stream['metadata'])) {
                 $mediaEntry['metadata'] = base64_decode($stream['metadata']);
             } else {
                 $mediaEntry['metadata'] = "";
             }
         }
         unset($mediaEntry, $childManifest);
     }
     // Available qualities
     $bitrates = array();
     if (!count($this->media)) {
         LogError("No media entry found");
     }
     krsort($this->media, SORT_NUMERIC);
     LogDebug("Manifest Entries:\n");
     LogDebug(sprintf(" %-8s%s", "Bitrate", "URL"));
     for ($i = 0; $i < count($this->media); $i++) {
         $key = KeyName($this->media, $i);
         $bitrates[] = $key;
         LogDebug(sprintf(" %-8d%s", $key, $this->media[$key]['url']));
     }
     LogDebug("");
     LogInfo("Quality Selection:\n Available: " . implode(' ', $bitrates));
     // Quality selection
     if (is_numeric($this->quality) and isset($this->media[$this->quality])) {
         $key = $this->quality;
         $this->media = $this->media[$key];
     } else {
         $this->quality = strtolower($this->quality);
         switch ($this->quality) {
             case "low":
                 $this->quality = 2;
                 break;
             case "medium":
                 $this->quality = 1;
                 break;
             default:
                 $this->quality = 0;
         }
         while ($this->quality >= 0) {
             $key = KeyName($this->media, $this->quality);
             if ($key !== NULL) {
                 $this->media = $this->media[$key];
                 break;
             } else {
                 $this->quality -= 1;
             }
         }
     }
     LogInfo(" Selected : " . $key);
     // Parse initial bootstrap info
     $this->baseUrl = $this->media['baseUrl'];
     if (isset($this->media['bootstrapUrl'])) {
         $this->bootstrapUrl = $this->media['bootstrapUrl'];
         $this->UpdateBootstrapInfo($cc, $this->bootstrapUrl);
     } else {
         $bootstrapInfo = $this->media['bootstrap'];
         ReadBoxHeader($bootstrapInfo, $pos, $boxType, $boxSize);
         if ($boxType == "abst") {
             $this->ParseBootstrapBox($bootstrapInfo, $pos);
         } else {
             LogError("Failed to parse bootstrap info");
         }
     }
 }
Esempio n. 24
0
							inp_height.value = height;

						}

					}

					else

					{

						if(img.height < defaultheight)

						{

							alert("<?php 
echo GetString("ImagetooSmall");
?>
");

							inp_width.value = img.width;

							inp_height.value = img.height;

						}

						else

						{

							inp_height.value = defaultheight;
Esempio n. 25
0
		</tr>
		<tr>
			<td><?php 
echo GetString("TabIndex");
?>
:</td>
			<td><input type="text" id="inp_index" size="5" value="" maxlength="5" onkeypress="return CancelEventIfNotDigit()" />		
			</td>
		</tr>
		<tr>
			<td>
			</td>
			<td><input type="checkbox" id="inp_Disabled" /><label for="inp_Disabled"><?php 
echo GetString("Disabled");
?>
</label>
			</td>
		</tr>
		<tr>
			<td>
			</td>
			<td><input type="checkbox" id="inp_Readonly" /><label for="inp_Readonly"><?php 
echo GetString("Readonly");
?>
</label>
			</td>
		</tr>
	</table>
</fieldset>
<script type="text/javascript" src="../Scripts/Dialog/Dialog_Tag_Textarea.js"></script>
Esempio n. 26
0
" />
					    <input type="button" style="width:75px; height:22px; margin-top:7px" class="formbutton" onclick="ReplaceTxt();" value="<?php 
echo GetString("Replace");
?>
" />
					    <input type="button" style="width:75px; height:22px; margin-top:7px" class="formbutton" onclick="ReplaceAllTxt();" value="<?php 
echo GetString("Replace All");
?>
"/>
					    <input type="button" style="width:75px; height:22px; margin-top:7px" class="formbutton" onclick="top.close();" value="<?php 
echo GetString("Cancel");
?>
"/>
					</td>
				</tr>
			</table>
	</body>
	<script>
	    var WordNotFound = "<?php 
echo GetString("WordNotFound");
?>
";
	    var WordReplaced = "<?php 
echo GetString("WordReplaced");
?>
";
	</script>
	<script type="text/javascript" src="../Scripts/Dialog/DialogFoot.js"></script>
	<script type="text/javascript" src="../Scripts/Dialog/Dialog_Find.js"></script>
</html>
Esempio n. 27
0
			            var tempPath = browse_Frame.location;	

			            tempPath = tempPath + "&action=createfolder&foldername="+dir;

			            browse_Frame.location = tempPath;		

		            }

	            }

	            else

	            {

		            var dir=prompt("<?php 
echo GetString("SpecifyNewFolderName");
?>
","")

		            if(dir)

		            {

			            var tempPath = browse_Frame.location;	

			            tempPath = tempPath + "&action=createfolder&foldername="+dir;

			            browse_Frame.location = tempPath;			

		            }
Esempio n. 28
0
				});
			});
			</script>
		</div>
		
		<div class="writeColumn">
			<table class="writeTable">
			<tr>
				<td class="label"><?php 
echo $Module->getLanguage('class_title');
?>
</td>
				<td class="input">
					<div class="inputBlock">
						<input type="text" name="title" class="inputControl"<?php 
echo $class !== null ? ' value="' . GetString($class->title, 'input') . '"' : '';
?>
 required>
						<div class="helpBlock" data-default="<?php 
echo $Module->getLanguage('create/help/title/default');
?>
" data-error="<?php 
echo $Module->getLanguage('create/help/title/error');
?>
"></div>
					</div>
				</td>
			</tr>
			<tr class="split">
				<td colspan="2"></td>
			</tr>
Esempio n. 29
0
								<option value="row">row</option>

								<option value="col">col</option>

								<option value="rowgroup">rowgroup</option>

								<option value="colgroup">colgroup</option>

							</select>	

						</td>

					</tr>

					<tr>

						<td><?php 
echo GetString("Title");
?>
:</td>

						<td colspan="4"><textarea id="inp_tooltip" rows="6" cols="53"></textarea></td>

					</tr>

				</table>

</fieldset>

<script type="text/javascript" src="../Scripts/Dialog/Dialog_Tag_Td.js"></script>
Esempio n. 30
0
 function doProcess($action)
 {
     $results = new stdClass();
     $values = new stdClass();
     if ($action == 'listUrl') {
         $menu = Request('menu');
         $page = Request('page');
         $page = $this->IM->getPages($menu, $page);
         $oKey = Request('oKey');
         $oKeyword = Request('oKeyword');
         $oLabel = Request('oLabel');
         $oSort = Request('oSort');
         $oDirection = Request('oDirection');
         $key = Request('key');
         $keyword = Request('keyword');
         $label = Request('label');
         $sort = Request('sort');
         $direction = Request('direction');
         $key = Request('key');
         $keyword = Request('keyword');
         $p = Request('p') ? Request('p') : 1;
         $queryString = 'menu=' . $page->menu . '&page=' . $page->page . '&key=' . $key . '&keyword=' . $keyword . '&label=' . $label . '&sort=' . $sort . '&direction=' . $direction . '&p=' . $p;
         if ($oKey != $key || $oKeyword != $keyword || $oLabel != $label || $oSort != $sort || $oDirection != $direction) {
             $p = 1;
         }
         $default = array();
         if (strlen($keyword) == 0) {
             $default['key'] = '';
             $default['keyword'] = '';
         }
         if ($sort == 'idx' && $direction == 'desc') {
             $default['sort'] = $default['direction'] = '';
         }
         if (isset($page->context->config->label) == true && $page->context->config->label == $label) {
             $default['label'] = '';
         }
         if (isset($page->context->config->category) == true && $page->context->config->category == $category) {
             $default['category'] = '';
         }
         $url = $this->IM->getUrl($page->menu, $page->page, 'list', $p) . $this->IM->getQueryString($default, $queryString);
         $results->success = true;
         $results->url = $url;
     }
     if ($action == 'create') {
         $values->errors = array();
         $values->idx = Request('idx');
         $values->lid = Request('lid');
         $values->menu = Request('menu');
         $values->page = Request('page');
         $values->title = Request('title') ? Request('title') : ($values->errors['title'] = $this->getLanguage('create/help/title/error'));
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('create/help/content/error'));
         $values->type = Request('type') ? Request('type') : ($values->errors['type'] = $this->getLanguage('create/help/type/error'));
         $values->attend = Request('attend') ? Request('attend') : ($values->errors['attend'] = $this->getLanguage('create/help/attend/error'));
         $values->lms = $this->getLms($values->lid);
         if ($values->lms->use_label != 'NONE') {
             $values->labels = is_array(Request('labels')) == true ? Request('labels') : array();
             if ($values->lms->use_label == 'FORCE' && count($values->labels) == 0) {
                 $values->errors['labels'] = $this->getLanguage('create/help/labels/error');
             }
         } else {
             $values->labels = array();
         }
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif (empty($values->errors) == true) {
             $results->success = true;
             $mHash = new Hash();
             $insert = array();
             $insert['lid'] = $values->lid;
             $insert['title'] = $values->title;
             $insert['content'] = $values->content;
             if ($values->idx == null) {
                 $class = null;
                 $reg_date = time();
                 $insert['midx'] = $this->IM->getModule('member')->getLogged();
                 $insert['reg_date'] = $reg_date;
                 $insert['last_subject'] = $reg_date;
                 $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                 $values->idx = $this->db()->insert($this->table->class, $insert)->execute();
                 //					$this->IM->getModule('member')->sendPoint(null,$values->forum->post_point,'forum','post',array('idx'=>$values->idx));
                 //					$this->IM->getModule('member')->addActivity(null,$values->forum->post_exp,'forum','post',array('idx'=>$values->idx));
             } else {
                 $class = $this->getClass($values->idx);
                 $reg_date = $class->last_subject;
                 if ($this->checkPermission('class_modify') == false && $class->midx != $this->IM->getModule('member')->getLogged()) {
                     $results->success = false;
                     $results->message = $this->getLanguage('error/forbidden');
                 }
                 if ($results->success == true) {
                     $this->db()->update($this->table->class, $insert)->where('idx', $class->idx)->execute();
                     /*
                     if ($post->midx != $this->IM->getModule('member')->getLogged()) {
                     	$this->IM->getModule('push')->sendPush($post->midx,'forum','post_modify',$values->idx,array('from'=>$this->IM->getModule('member')->getLogged()));
                     }
                     $this->IM->getModule('member')->addActivity(null,0,'forum','post_modify',array('idx'=>$values->idx));
                     */
                 }
             }
             if ($results->success == true) {
                 $cover = Request('cover');
                 if ($cover && preg_match('/^data:image/', $cover) == true) {
                     $temp = explode(',', $cover);
                     $type = array_shift($temp);
                     $fileType = 'jpg';
                     if (preg_match('/^data:image\\/(.*?);/', $type, $match) == true) {
                         $fileType = $match[1];
                     }
                     $imageData = base64_decode(implode(',', $temp));
                     $tempFileName = $this->IM->getModule('attachment')->getTempPath(true) . '/' . md5($imageData);
                     file_put_contents($tempFileName, $imageData);
                     if ($this->IM->getModule('attachment')->createThumbnail($tempFileName, $tempFileName, 420, 560, false) == true) {
                         if ($class == null || $class->cover == 0) {
                             $coverIdx = $this->IM->getModule('attachment')->fileSave('cover.' . $fileType, $tempFileName, 'lms', 'cover');
                         } else {
                             $coverIdx = $this->IM->getModule('attachment')->fileReplace($class->cover, 'cover.' . $fileType, $tempFileName);
                         }
                         $this->db()->update($this->table->class, array('cover' => $coverIdx))->where('idx', $values->idx)->execute();
                     }
                 }
                 $labels = $this->db()->select($this->table->class_label)->where('idx', $values->idx)->get();
                 for ($i = 0, $loop = count($labels); $i < $loop; $i++) {
                     if (in_array($labels[$i]->label, $values->labels) == false) {
                         $this->db()->delete($this->table->class_label)->where('idx', $values->idx)->where('label', $labels[$i]->label)->execute();
                         $lastClass = $this->db()->select($this->table->class_label)->where('label', $labels[$i]->label)->orderBy('reg_date', 'desc')->get();
                         $classnum = count($lastClass);
                         $lastClassTime = $classnum > 0 ? $lastClass[0]->reg_date : 0;
                         $this->db()->update($this->table->label, array('classnum' => $classnum, 'last_class' => $lastClassTime))->where('idx', $labels[$i]->label)->execute();
                     }
                 }
                 if (count($values->labels) > 0) {
                     for ($i = 0, $loop = count($values->labels); $i < $loop; $i++) {
                         if ($this->db()->select($this->table->class_label)->where('idx', $values->idx)->where('label', $values->labels[$i])->count() == 0) {
                             $this->db()->insert($this->table->class_label, array('idx' => $values->idx, 'label' => $values->labels[$i], 'reg_date' => $reg_date))->execute();
                             $lastClass = $this->db()->select($this->table->class_label)->where('label', $values->labels[$i])->orderBy('reg_date', 'desc')->get();
                             $classnum = count($lastClass);
                             $lastClassTime = $classnum > 0 ? $lastClass[0]->reg_date : 0;
                             $this->db()->update($this->table->label, array('classnum' => $classnum, 'last_class' => $lastClassTime))->where('idx', $values->labels[$i])->execute();
                         }
                     }
                 }
                 $lastClass = $this->db()->select($this->table->class)->where('lid', $values->lid)->orderBy('last_subject', 'desc')->get();
                 $classnum = count($lastClass);
                 $lastClassTime = $classnum > 0 ? $lastClass[0]->last_subject : 0;
                 $this->db()->update($this->table->lms, array('classnum' => $classnum, 'last_class' => $lastClassTime))->where('lid', $values->lid)->execute();
                 $page = $this->IM->getPages($values->menu, $values->page);
                 if ($page->context->config == null) {
                     $results->redirect = $this->IM->getUrl($values->menu, $values->page, 'class', $values->idx);
                 } elseif (in_array($page->context->config->label, $values->labels) == true) {
                     $results->redirect = $this->IM->getUrl($values->menu, $values->page, 'class', $values->idx);
                 } else {
                     $redirectPage = $this->getPostPage($values->idx);
                     $results->redirect = $this->IM->getUrl($redirectPage->menu, $redirectPage->page, 'class', $values->idx);
                 }
             }
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/required');
             $results->errors = $values->errors;
         }
     }
     if ($action == 'postSubject') {
         $values->type = Request('type');
         $values->parent = Request('parent');
         $class = $this->getClass($values->parent);
         if ($values->type == 'add' || $values->type == 'modify') {
             if ($class == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($this->IM->getModule('member')->isLogged() == false) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notLogged');
             } elseif ($this->checkPermission('add_subject') == true || $class->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = true;
                 $results->modalHtml = $this->getPostSubjectModal($values->parent);
             } else {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/forbidden');
             }
         } else {
             $values->errors = array();
             $values->title = Request('title') ? Request('title') : ($values->errors['title'] = $this->getLanguage('addSubject/help/title/error'));
             if ($class == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($this->IM->getModule('member')->isLogged() == false) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notLogged');
             } elseif (count($values->errors) == 0) {
                 $results->success = true;
                 $sort = $this->db()->select($this->table->subject)->where('parent', $values->parent)->orderBy('sort', 'desc')->getOne();
                 $sort = $sort == null ? 0 : $sort->sort + 1;
                 $this->db()->insert($this->table->subject, array('lid' => $class->lid, 'parent' => $values->parent, 'midx' => $this->IM->getModule('member')->getLogged(), 'title' => $values->title, 'reg_date' => time(), 'sort' => $sort))->execute();
                 $lastSubject = $this->db()->select($this->table->subject)->where('parent', $values->parent)->orderBy('reg_date', 'desc')->get();
                 $subject = count($lastSubject);
                 $lastSubjectTime = $subject > 0 ? $lastSubject[0]->reg_date : 0;
                 $this->db()->update($this->table->class, array('last_subject' => $lastSubjectTime, 'subject' => $subject))->where('idx', $values->parent)->execute();
             } else {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/required');
                 $results->errors = $values->errors;
             }
         }
     }
     if ($action == 'getConfig') {
         $values->type = Request('type');
         $values->idx = Request('idx');
         if ($values->type == 'post') {
             $post = $this->getPost($values->idx);
             $class = $this->getClass($post->class);
         } else {
             $subject = $this->getSubject($values->idx);
             $class = $this->getClass($subject->parent);
         }
         if ($class->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = true;
             if ($values->type == 'post') {
                 $results->posts = array();
                 $posts = $this->db()->select($this->table->post)->where('parent', $post->parent)->orderBy('sort', 'asc')->get();
                 for ($i = 0, $loop = count($posts); $i < $loop; $i++) {
                     if ($posts[$i]->idx == $values->idx) {
                         continue;
                     }
                     $results->posts[] = array('idx' => $posts[$i]->idx, 'title' => $posts[$i]->title);
                 }
             }
             $results->subjects = array();
             $subjects = $this->db()->select($this->table->subject)->where('parent', $class->idx)->orderBy('sort', 'asc')->get();
             for ($i = 0, $loop = count($subjects); $i < $loop; $i++) {
                 if ($values->type == 'post' && $post->parent == $subjects[$i]->idx) {
                     continue;
                 }
                 $results->subjects[] = array('idx' => $subjects[$i]->idx, 'title' => $subjects[$i]->title);
             }
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         }
     }
     if ($action == 'getPostContext') {
         $values->idx = Request('idx');
         $values->post = $this->getPost($values->idx);
         $values->attend = $this->getAttend($values->post->class);
         if ($values->post != null) {
             $results->success = true;
             $results->context = json_decode($values->post->context);
             if ($values->attend->mode == "P") {
                 $trackings = $this->db()->select($this->table->tracking)->where('pidx', $values->idx)->get();
                 $results->tracking = new stdClass();
                 $results->tracking->last_position = 0;
                 $results->tracking->tracking = array();
                 for ($i = 0; $i < $results->context->time; $i++) {
                     $results->tracking->tracking[$i] = 0;
                 }
                 foreach ($trackings as $tracking) {
                     for ($i = 0; $i < $results->context->time; $i++) {
                         $count = base_convert(substr($tracking->tracking, $i, 1), 32, 10);
                         $results->tracking->tracking[$i] += $count;
                     }
                 }
             } else {
                 $results->tracking = $this->db()->select($this->table->tracking)->where('midx', $this->IM->getModule('member')->getLogged())->where('pidx', $values->idx)->getOne();
                 if ($results->tracking == null) {
                     $results->tracking = new stdClass();
                     $results->tracking->last_position = 0;
                     $results->tracking->type = $values->post->type;
                     if ($values->post->type == 'youtube' || $values->post->type == 'video') {
                         $results->tracking->tracking = 'T' . str_pad('', $results->context->time, '0');
                     }
                 } else {
                     if ($values->post->type == 'youtube' || $values->post->type == 'video') {
                         $results->tracking->tracking = 'T' . $results->tracking->tracking;
                     }
                 }
             }
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         }
     }
     if ($action == 'tracking') {
         $values->pidx = Request('pidx');
         $values->post = $this->getPost($values->pidx);
         $values->midx = $this->IM->getModule('member')->getLogged();
         $values->last_position = Request('last_position');
         if ($values->post->type == 'youtube') {
             $context = json_decode($values->post->context);
             $values->tracking = substr(Request('tracking'), 1);
             if (strlen($values->tracking) != $context->time) {
                 $values->tracking = str_pad(substr($values->tracking, 0, $context->time), $context->time, STR_PAD_RIGHT);
             }
             $values->percent = round(($context->time - substr_count($values->tracking, '0')) / $context->time * 100);
         }
         if ($this->db()->select($this->table->tracking)->where('midx', $values->midx)->where('pidx', $values->pidx)->count() == 0) {
             $this->db()->insert($this->table->tracking, array('midx' => $values->midx, 'pidx' => $values->pidx, 'tracking' => $values->tracking, 'percent' => $values->percent, 'last_position' => $values->last_position, 'reg_date' => time(), 'update_date' => time()))->execute();
         } else {
             $this->db()->update($this->table->tracking, array('tracking' => $values->tracking, 'percent' => $values->percent, 'last_position' => $values->last_position, 'update_date' => time()))->where('midx', $values->midx)->where('pidx', $values->pidx)->execute();
         }
         $results->success = true;
     }
     if ($action == 'addItem') {
         $values->parent = Request('parent');
         $subject = $this->getSubject($values->parent);
         if ($subject == null) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } elseif ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif ($this->checkPermission('add_item') == true || $subject->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = true;
             $results->modalHtml = $this->getAddItemModal($values->parent);
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         }
     }
     if ($action == 'postWrite') {
         $values->errors = array();
         $values->lid = Request('lid');
         $values->idx = Request('idx');
         $values->parent = Request('parent');
         $values->subject = $this->getSubject($values->parent);
         $values->lms = $this->getLms($values->lid);
         $values->type = Request('type');
         $values->menu = Request('menu');
         $values->page = Request('page');
         $values->title = Request('title') ? Request('title') : ($values->errors['title'] = $this->getLanguage('postWrite/help/title/error'));
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('postWrite/help/content/error'));
         $values->context = new stdClass();
         $values->progress_check = Request('progress_check') ? 'TRUE' : 'FALSE';
         $values->attachments = is_array(Request('attachments')) == true ? Request('attachments') : array();
         for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
             $values->attachments[$i] = Decoder($values->attachments[$i]);
         }
         $values->content = $this->encodeContent($values->content, $values->attachments);
         if ($values->type == 'youtube') {
             $values->context->id = Request('id') ? Request('id') : ($values->errors['url'] = $this->getLanguage('youtube/help/url/error'));
             $values->context->thumbnail = Request('thumbnail');
             $values->context->afk_check = Request('afk_check') ? true : false;
             if ($values->context->afk_check == true) {
                 $values->context->afk_check_time = preg_match('/^[1-9]+[0-9]*$/', Request('afk_check_time')) == true && Request('afk_check_time') >= 60 ? Request('afk_check_time') : ($values->errors['afk_check_time'] = $this->getLanguage('youtube/help/afk_check_time/error'));
             } else {
                 $values->context->afk_check_time = 0;
             }
             if (preg_match('/^PT(([0-9]+)H)?(([0-9]+)M)?(([0-9]+)S)?$/', Request('time'), $time) == true) {
                 $values->context->time = $time[2] * 3600 + $time[4] * 60 + $time[6];
             } else {
                 $values->context->time = -1;
             }
             $values->context->caption = Request('caption') == "true";
         }
         if ($values->type == 'video') {
             $values->context->id = Request('id') ? Request('id') : ($values->errors['file'] = $this->getLanguage('video/help/file/error'));
             $values->context->privacy = Request('privacy');
             $values->context->afk_check = Request('afk_check') ? true : false;
             if ($values->context->afk_check == true) {
                 $values->context->afk_check_time = preg_match('/^[1-9]+[0-9]*$/', Request('afk_check_time')) == true && Request('afk_check_time') >= 60 ? Request('afk_check_time') : ($values->errors['afk_check_time'] = $this->getLanguage('youtube/help/afk_check_time/error'));
             } else {
                 $values->context->afk_check_time = 0;
             }
         }
         $values->context = json_encode($values->context);
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif (empty($values->errors) == true) {
             $results->success = true;
             $mHash = new Hash();
             $insert = array();
             $insert['lid'] = $values->lid;
             $insert['class'] = $values->subject->parent;
             $insert['parent'] = $values->parent;
             $insert['type'] = $values->type;
             $insert['title'] = $values->title;
             $insert['content'] = $values->content;
             $insert['search'] = GetString($values->content, 'index');
             $insert['context'] = $values->context;
             $insert['progress_check'] = $values->progress_check;
             $insert['reg_date'] = time();
             if ($values->idx == null) {
                 $post = null;
                 $sort = $this->db()->select($this->table->post)->where('parent', $values->parent)->orderBy('sort', 'desc')->getOne();
                 $sort = $sort == null ? 0 : $sort->sort + 1;
                 $insert['sort'] = $sort;
                 $insert['midx'] = $this->IM->getModule('member')->getLogged();
                 $values->idx = $this->db()->insert($this->table->post, $insert)->execute();
                 //					$this->IM->getModule('member')->sendPoint(null,$values->forum->post_point,'forum','post',array('idx'=>$values->idx));
                 //					$this->IM->getModule('member')->addActivity(null,$values->forum->post_exp,'forum','post',array('idx'=>$values->idx));
             } else {
                 $post = $this->getPost($values->idx);
                 $reg_date = $post->last_ment;
                 if ($this->checkPermission('post_modify') == false && $post->midx != $this->IM->getModule('member')->getLogged()) {
                     $results->success = false;
                     $results->message = $this->getLanguage('error/forbidden');
                 }
                 if ($results->success == true) {
                     $this->db()->update($this->table->post, $insert)->where('idx', $post->idx)->execute();
                     if ($post->midx != $this->IM->getModule('member')->getLogged()) {
                         $this->IM->getModule('push')->sendPush($post->midx, 'forum', 'post_modify', $values->idx, array('from' => $this->IM->getModule('member')->getLogged()));
                     }
                     $this->IM->getModule('member')->addActivity(null, 0, 'forum', 'post_modify', array('idx' => $values->idx));
                 }
             }
             if ($results->success == true) {
                 for ($i = 0, $loop = count($values->attachments); $i < $loop; $i++) {
                     if ($this->db()->select($this->table->attachment)->where('idx', $values->attachments[$i])->count() == 0) {
                         $this->db()->insert($this->table->attachment, array('idx' => $values->attachments[$i], 'lid' => $values->lid, 'type' => 'POST', 'parent' => $values->idx))->execute();
                     }
                 }
                 $results->redirect = $this->IM->getUrl($values->menu, $values->page, 'class', $values->subject->parent);
             }
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/required');
             $results->errors = $values->errors;
         }
     }
     if ($action == 'postView') {
         $values->idx = Request('idx');
         $values->post = $this->getPost($values->idx);
         $attend = $this->getAttend($values->post->class);
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } else {
             if ($attend == null) {
                 $results->success = true;
                 $results->modalHtml = $this->getAttendClassModal($values->post->class, $values->idx);
             } else {
                 if ($attend->status == 'ACTIVE') {
                     $page = $this->getClassPage($values->post->class);
                     $results->success = true;
                     $results->redirect = $this->IM->getUrl($page->menu, $page->page, 'view', $values->idx);
                 } else {
                     $results->success = false;
                     // To Do : Message
                 }
             }
         }
     }
     if ($action == 'postModify') {
         $values->idx = Request('idx');
         $post = $this->getPost($values->idx);
         if ($post == null) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } elseif ($this->checkPermission('post_modify') == true || $post->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = true;
             $results->permission = true;
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         }
     }
     if ($action == 'postDelete') {
         $values->idx = Request('idx');
         $post = $this->getPost($values->idx);
         if ($post == null) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } elseif ($this->checkPermission('post_delete') == true || $post->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = true;
             $results->modalHtml = $this->getDelete('post', $values->idx);
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         }
     }
     if ($action == 'attendClass') {
         $values->idx = Request('idx');
         $values->class = $this->getClass($values->idx);
         $values->post = Request('post');
         $attend = $this->getAttend($values->class->idx);
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } else {
             if ($attend == null) {
                 $results->success = true;
                 $status = 'ACTIVE';
                 $this->db()->insert($this->table->attend, array('midx' => $this->IM->getModule('member')->getLogged(), 'class' => $values->class->idx, 'reg_date' => time(), 'status' => $status))->execute();
                 $student = $this->db()->select($this->table->attend)->where('class', $values->class->idx)->where('status', 'ACTIVE')->count();
                 $this->db()->update($this->table->class, array('student' => $student))->where('idx', $values->class->idx)->execute();
                 if ($values->post != null) {
                     $results->post = $values->post;
                 } else {
                     $page = $this->getClassPage($values->idx);
                     $results->redirect = $this->IM->getUrl($page->menu, $page->page, 'class', $values->idx);
                 }
             } else {
                 if ($attend->mode == 'P') {
                     $results->success = false;
                     $results->message = $this->getLanguage('error/attendMyClass');
                 } else {
                     $results->success = false;
                     //				$results->message = $this->getLanguage('error/attendMyClass');
                 }
             }
         }
     }
     if ($action == 'mentWrite') {
         $values->errors = array();
         $values->idx = Request('idx');
         $values->fromidx = Request('fromidx') ? Request('fromidx') : 0;
         $values->parent = Request('parent');
         $values->post = $this->getPost($values->parent);
         $values->lms = $this->getLms($values->post->lid);
         $values->content = Request('content') ? Request('content') : ($values->errors['content'] = $this->getLanguage('mentWrite/help/content/error'));
         $values->position = is_numeric(Request('position')) == true ? Request('position') : 0;
         $results->success = true;
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } elseif ($results->success == true && empty($values->errors) == true) {
             $mHash = new Hash();
             $insert = array();
             $insert['lid'] = $values->post->lid;
             $insert['parent'] = $values->parent;
             $insert['fromidx'] = $values->fromidx;
             $insert['midx'] = $this->IM->getModule('member')->getLogged();
             $insert['content'] = $values->content;
             $insert['position'] = $values->position;
             if ($values->idx == null) {
                 $insert['reg_date'] = time();
                 $insert['ip'] = $_SERVER['REMOTE_ADDR'];
                 $values->idx = $this->db()->insert($this->table->ment, $insert)->execute();
                 if ($values->post->midx != $this->IM->getModule('member')->getLogged()) {
                     //						$this->IM->getModule('push')->sendPush($values->post->midx,'forum','ment',$values->post->idx,array('idx'=>$values->idx,'from'=>$this->IM->getModule('member')->getLogged()));
                 }
                 //					if ($source != 0 && $sourceData->midx != $this->IM->getModule('member')->getLogged()) {
                 //						$this->IM->getModule('push')->sendPush($sourceData->midx,'forum','replyment',$values->post->idx,array('idx'=>$values->idx,'from'=>$this->IM->getModule('member')->getLogged()));
                 //					}
                 //					$this->IM->getModule('member')->sendPoint(null,$values->forum->ment_point,'forum','ment',array('idx'=>$values->idx));
                 //					$this->IM->getModule('member')->addActivity(null,$values->forum->ment_exp,'forum','ment',array('idx'=>$values->idx));
             } else {
                 /*
                 					$ment = $this->getMent($values->idx);
                 					
                 					if ($this->checkPermission('ment_modify') == false && ($ment->midx != 0 && $ment->midx != $this->IM->getModule('member')->getLogged())) {
                 						$results->success = false;
                 						$results->message = $this->getLanguage('error/forbidden');
                 					} elseif ($ment->midx == 0) {
                 						if ($mHash->password_validate($values->password,$ment->password) == false) {
                 							$results->success = false;
                 							$results->errors = array('password'=>$this->getLanguage('error/incorrectPassword'));
                 							$results->message = $this->getLanguage('error/incorrectPassword');
                 						}
                 					}
                 					
                 					if ($results->success == true) {
                 						if ($this->IM->getModule('member')->isLogged() == false) {
                 							$insert['name'] = $values->name;
                 							$insert['password'] = $values->password ? $mHash->password_hash($values->password) : '';
                 							$insert['email'] = $values->email;
                 							$insert['ip'] = $_SERVER['REMOTE_ADDR'];
                 						}
                 						$insert['modify_date'] = time();
                 						
                 						$this->db()->update($this->table->ment,$insert)->where('idx',$ment->idx)->execute();
                 						
                 						if ($ment->midx != $this->IM->getModule('member')->getLogged()) {
                 							$this->IM->getModule('push')->sendPush($ment->midx,'forum','ment_modify',$values->idx,array('from'=>$this->IM->getModule('member')->getLogged()));
                 						}
                 						$this->IM->getModule('member')->addActivity(null,0,'forum','ment',array('idx'=>$values->idx));
                 					}
                 */
             }
             if ($results->success == true) {
                 $lastMent = $this->db()->select($this->table->ment)->where('parent', $values->parent)->where('is_delete', 'FALSE')->orderBy('reg_date', 'desc')->get();
                 $mentnum = count($lastMent);
                 $lastMentTime = $mentnum > 0 ? $lastMent[0]->reg_date : $values->post->reg_date;
                 $this->db()->update($this->table->post, array('ment' => $mentnum, 'last_ment' => $lastMentTime))->where('idx', $values->parent)->execute();
                 //					$this->IM->setArticle('forum',$values->post->lid,'post',$values->parent,time());
                 //					$this->IM->setArticle('forum',$values->post->lid,'ment',$values->idx,time());
                 $results->message = $this->getLanguage('mentWrite/success');
                 $results->idx = $values->idx;
                 $results->parent = $values->parent;
             }
         } elseif (count($values->errors) > 0) {
             $results->success = false;
             $results->message = $this->getLanguage('error/required');
             $results->errors = $values->errors;
         }
     }
     if ($action == 'mentModify') {
         $values->idx = Request('idx');
         $ment = $this->getMent($values->idx);
         if ($ment == null) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } elseif ($this->checkPermission('ment_modify') == true || $ment->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = true;
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         }
         if ($results->success == true) {
             $ment->content = $this->getArticleContent($ment->content);
             $attachments = $this->db()->select($this->table->attachment)->where('parent', $ment->idx)->where('type', 'MENT')->get();
             for ($i = 0, $loop = count($attachments); $i < $loop; $i++) {
                 $attachments[$i] = $attachments[$i]->idx;
             }
             $ment->attachment = Encoder(json_encode($attachments));
             $results->data = $ment;
         }
     }
     if ($action == 'vote') {
         $values->idx = Request('idx');
         $values->vote = in_array(Request('vote'), array('good', 'bad')) == true ? Request('vote') : 'good';
         if ($this->IM->getModule('member')->isLogged() == false) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notLogged');
         } else {
             $values->post = $this->getPost($values->idx);
             if ($values->post == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($values->post->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = false;
                 $results->message = $this->getLanguage('vote/mypost');
             } else {
                 $values->forum = $this->getLms($values->post->lid);
                 $check = $this->db()->select($this->table->history)->where('parent', $values->idx)->where('action', 'VOTE')->where('midx', $this->IM->getModule('member')->getLogged())->getOne();
                 if ($check == null) {
                     if ($values->vote == 'good') {
                         $this->db()->update($this->table->post, array('vote' => $this->db()->inc()))->where('idx', $values->idx)->execute();
                     } else {
                         $this->db()->update($this->table->post, array('vote' => $this->db()->dec()))->where('idx', $values->idx)->execute();
                     }
                     $this->db()->insert($this->table->history, array('type' => 'POST', 'parent' => $values->idx, 'action' => 'VOTE', 'midx' => $this->IM->getModule('member')->getLogged(), 'result' => strtoupper($values->vote), 'reg_date' => time()))->execute();
                     $results->success = true;
                     $results->message = $this->getLanguage('vote/' . $values->vote);
                     $results->liveUpdate = 'liveUpdateLmsVote' . $values->idx;
                     $results->liveValue = number_format($values->vote == 'good' ? $values->post->vote + 1 : $values->post->vote - 1);
                     $this->IM->getModule('member')->sendPoint(null, $values->forum->vote_point, 'forum', 'post_' . $values->vote, array('idx' => $values->idx));
                     $this->IM->getModule('member')->addActivity(null, $values->forum->vote_exp, 'forum', 'post_' . $values->vote, array('idx' => $values->idx));
                     $this->IM->getModule('push')->sendPush($values->post->midx, 'forum', 'post_' . $values->vote, $values->post->idx, array('from' => $this->IM->getModule('member')->getLogged()));
                 } else {
                     $results->success = false;
                     $results->message = $this->getLanguage('vote/duplicated');
                     $results->result = $check->result;
                 }
             }
         }
     }
     if ($action == 'getMent') {
         $values->parent = Request('parent');
         $ments = $this->db()->select($this->table->ment)->where('parent', $values->parent)->get();
         for ($i = 0, $loop = count($ments); $i < $loop; $i++) {
             $member = $this->IM->getModule('member')->getMember($ments[$i]->midx);
             $ments[$i]->nickname = $member->nickname;
             $ments[$i]->photo = $member->photo;
         }
         $results->success = true;
         $results->ments = $ments;
     }
     if ($action == 'getMentStatus') {
         $values->parent = Request('parent');
         $status = array();
         for ($i = 0; $i < 20; $i++) {
             $status[$i] = array('total' => 0);
         }
         $ments = $this->db()->select($this->table->ment)->where('parent', $values->parent)->get();
         for ($i = 0, $loop = count($ments); $i < $loop; $i++) {
             $position = floor($ments[$i]->position / 5);
             $position = $position == 20 ? 19 : $position;
             $status[$position]['total']++;
             if (isset($status[$position][$ments[$i]->type]) == true) {
                 $status[$position][$ments[$i]->type]++;
             } else {
                 $status[$position][$ments[$i]->type] = 1;
             }
         }
         $results->success = true;
         $results->status = $status;
     }
     if ($action == 'mentDelete') {
         $values->idx = Request('idx');
         $ment = $this->getMent($values->idx);
         if ($ment == null) {
             $results->success = false;
             $results->message = $this->getLanguage('error/notFound');
         } elseif ($this->checkPermission('ment_delete') == true || $ment->midx == $this->IM->getModule('member')->getLogged()) {
             $results->success = true;
             $results->modalHtml = $this->getDelete('ment', $values->idx);
         } else {
             $results->success = false;
             $results->message = $this->getLanguage('error/forbidden');
         }
     }
     if ($action == 'delete') {
         $values->idx = Request('idx');
         $values->type = Request('type');
         if ($values->type == 'post') {
             $post = $this->getPost($values->idx);
             $values->forum = $this->getLms($post->lid);
             if ($post == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($this->checkPermission('post_delete') == true || $post->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = true;
             } else {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/forbidden');
             }
             if ($results->success == true) {
                 $this->db()->delete($this->table->post)->where('idx', $post->idx)->execute();
                 $attachments = $this->db()->select($this->table->attachment)->where('parent', $post->idx)->where('type', 'POST')->get();
                 for ($i = 0, $loop = count($attachments); $i < $loop; $i++) {
                     $attachments[$i] = $attachments[$i]->idx;
                 }
                 $this->IM->getModule('attachment')->fileDelete($attachments);
                 $ments = $this->db()->select($this->table->ment)->where('parent', $post->idx)->get();
                 for ($i = 0, $loop = count($ments); $i < $loop; $i++) {
                     $this->db()->delete($this->table->ment)->where('idx', $ments[$i]->idx)->execute();
                     $this->db()->delete($this->table->ment_depth)->where('idx', $ments[$i]->idx)->execute();
                     $attachments = $this->db()->select($this->table->attachment)->where('parent', $ments[$i]->idx)->where('type', 'MENT')->get();
                     for ($j = 0, $loopj = count($attachments); $j < $loopj; $j++) {
                         $attachments[$j] = $attachments[$j]->idx;
                     }
                     $this->IM->getModule('attachment')->fileDelete($attachments);
                 }
                 $labels = $this->db()->select($this->table->class_label)->where('idx', $post->idx)->get();
                 for ($i = 0, $loop = count($labels); $i < $loop; $i++) {
                     $this->db()->delete($this->table->class_label)->where('idx', $values->idx)->where('label', $labels[$i]->label)->execute();
                     $lastPost = $this->db()->select($this->table->class_label)->where('label', $labels[$i]->label)->orderBy('reg_date', 'desc')->get();
                     $postnum = count($lastPost);
                     $lastPostTime = $postnum > 0 ? $lastPost[0]->reg_date : 0;
                     $this->db()->update($this->table->label, array('postnum' => $postnum, 'last_post' => $lastPostTime))->where('idx', $labels[$i]->label)->execute();
                 }
                 $this->IM->getModule('member')->sendPoint($post->midx, $values->forum->ment_point * -1, 'forum', 'post_delete', array('title' => $post->title), true);
                 if ($post->midx == $this->IM->getModule('member')->getLogged()) {
                     $this->IM->getModule('member')->addActivity($post->midx, 0, 'forum', 'post_delete', array('title' => $post->title));
                 } else {
                     $this->IM->getModule('push')->sendPush($post->midx, 'forum', 'post_delete', $values->idx, array('title' => $post->title));
                 }
                 $this->IM->deleteArticle('forum', 'post', $values->idx);
             }
         } elseif ($values->type == 'ment') {
             $ment = $this->getMent($values->idx);
             $post = $this->getPost($ment->parent);
             $values->forum = $this->getLms($post->lid);
             if ($ment == null) {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/notFound');
             } elseif ($this->checkPermission('ment_delete') == true || $ment->midx == $this->IM->getModule('member')->getLogged()) {
                 $results->success = true;
             } else {
                 $results->success = false;
                 $results->message = $this->getLanguage('error/forbidden');
             }
             if ($results->success == true) {
                 if ($this->checkMentTree($values->idx) == false) {
                     $this->db()->delete($this->table->ment)->where('idx', $values->idx)->execute();
                     $this->db()->delete($this->table->ment_depth)->where('idx', $values->idx)->execute();
                     if ($ment->source != 0) {
                         $source = $this->getMent($ment->source);
                         while ($source->is_delete == 'TRUE') {
                             if ($this->checkMentTree($source->idx) == false) {
                                 $this->db()->delete($this->table->ment)->where('idx', $source->idx)->execute();
                                 $this->db()->delete($this->table->ment_depth)->where('idx', $source->idx)->execute();
                                 if ($source->source != 0) {
                                     $source = $this->getMent($source->source);
                                 } else {
                                     break;
                                 }
                             } else {
                                 break;
                             }
                         }
                     }
                     $results->position = null;
                 } else {
                     $results->position = $values->idx;
                     $this->db()->update($this->table->ment, array('is_delete' => 'TRUE', 'modify_date' => time(), 'content' => '', 'search' => ''))->where('idx', $ment->idx)->execute();
                 }
                 $attachments = $this->db()->select($this->table->attachment)->where('parent', $ment->idx)->where('type', 'MENT')->get();
                 for ($i = 0, $loop = count($attachments); $i < $loop; $i++) {
                     $attachments[$i] = $attachments[$i]->idx;
                 }
                 $this->IM->getModule('attachment')->fileDelete($attachments);
                 $lastMent = $this->db()->select($this->table->ment)->where('parent', $ment->parent)->where('is_delete', 'FALSE')->orderBy('reg_date', 'desc')->get();
                 if (count($lastMent) == 0) {
                     $this->db()->update($this->table->post, array('ment' => 0, 'last_ment' => $post->reg_date))->where('idx', $ment->parent)->execute();
                     $results->parent = $ment->parent;
                 } else {
                     if ($results->position == null) {
                         $position = $this->db()->select($this->table->ment_depth)->where('parent', $ment->parent)->where('head', $ment->head, '<=')->where('arrange', $ment->arrange, '<')->orderBy('head', 'asc')->orderBy('arrange', 'asc')->get();
                         $lastPosition = array_pop($position);
                         $results->position = $lastPosition->idx;
                     }
                     $this->db()->update($this->table->post, array('ment' => count($lastMent), 'last_ment' => $lastMent[0]->reg_date))->where('idx', $ment->parent)->execute();
                 }
                 $results->message = $this->getLanguage('mentDelete/success');
                 $this->IM->getModule('member')->sendPoint($ment->midx, $values->forum->ment_point * -1, 'forum', 'ment_delete', array('title' => $post->title), true);
                 if ($ment->midx == $this->IM->getModule('member')->getLogged()) {
                     $this->IM->getModule('member')->addActivity($ment->midx, 0, 'forum', 'ment_delete', array('title' => $post->title));
                 } else {
                     $this->IM->getModule('push')->sendPush($ment->midx, 'forum', 'ment_delete', $values->idx, array('title' => $post->title));
                 }
                 $this->IM->deleteArticle('forum', 'ment', $values->idx);
             }
         }
         $results->type = $values->type;
     }
     $this->IM->fireEvent('afterDoProcess', 'forum', $action, $values, $results);
     return $results;
 }