Ejemplo n.º 1
0
function GoogleMapUI_InsertMap()
{
    global $configVal, $pluginURL;
    $config = Setting::fetchConfigVal($configVal);
    $lat = $config['latitude'];
    $lng = $config['longitude'];
    $default_type = 'ROADMAP';
    $default_width = min(Misc::getContentWidth(), 500);
    $default_height = 400;
    $zoom = 10;
    _GMap_printHeaderForUI(_t('구글맵 삽입하기'), 'insert', $config['useSensor'] ? 'true' : 'false');
    ?>
	<div id="controls">
		<button id="toggleMarkerAddingMode"><?php 
    echo _t("마커 표시 모드");
    ?>
</button>
		<button id="doInsert"><?php 
    echo _t("본문에 삽입하기");
    ?>
</button>
	</div>
	<div style="text-align:center;">
		<div class="ui-widget-content" id="GoogleMapPreview" style="width:<?php 
    echo $default_width;
    ?>
px; height:<?php 
    echo $default_height;
    ?>
px; margin:0 auto;"></div>
	</div>
	<script type="text/javascript">
	//<![CDATA[
	GMapOnLoadCallbacks.push(function() {
		map = new google.maps.Map($('#GoogleMapPreview')[0], {
			'center':new google.maps.LatLng(<?php 
    echo $lat;
    ?>
, <?php 
    echo $lng;
    ?>
),
			'zoom': <?php 
    echo $zoom;
    ?>
,
			'mapTypeId': google.maps.MapTypeId.<?php 
    echo $default_type;
    ?>
,
			'mapTypeControl': true,
			'navigationControl': true,
			'scaleControl': true
		});
		google.maps.event.addListenerOnce(map, 'idle', initializeCustomizableMap);
	});
	//]]>
	</script>
	<h2><?php 
    echo _t("지도 검색");
    ?>
</h2>
	<div class="accordion-elem">
		<p><label><?php 
    echo _t("위치 검색");
    ?>
 : <input type="text" class="editControl" id="inputQuery" value="" /></label><button id="queryLocation"><?php 
    echo _t("찾기");
    ?>
</button></p>
	</div>
	<h2><?php 
    echo _t("기본 설정");
    ?>
</h2>
	<div class="accordion-elem">
		<p><label><?php 
    echo _t("가로");
    ?>
(px) : <input type="text" class="editControl" id="inputWidth" value="<?php 
    echo $default_width;
    ?>
" /></label></p>
		<p><label><?php 
    echo _t("세로");
    ?>
(px) : <input type="text" class="editControl" id="inputHeight" value="<?php 
    echo $default_height;
    ?>
" /></label></p>
		<p><button id="applyBasicSettings"><?php 
    echo _t("적용");
    ?>
</button></p>
	</div>
<?php 
    // TODO: 주소 추출 UI
    // - TODO: 포스트 내용 텍스트 얻어오기 및 주소 정보 추출
    _GMap_printFooterForUI('insert');
}
Ejemplo n.º 2
0
function printOwnerEditorScript($entryId = false)
{
    global $pluginURL, $pluginName, $configMappings;
    $contentWidth = 500;
    $context = Model_Context::getInstance();
    $browser = Utils_Browser::getInstance();
    if ($browser->isMobile()) {
        $contentWidth = 270;
    } else {
        $contentWidth = Misc::getContentWidth();
        /*
        		if($skin = $context->getProperty('skin.skin')) {
        			if($xml = @file_get_contents(ROOT."/skin/blog/$skin/index.xml")) {
        				$xmls = new XMLStruct();
        				$xmls->open($xml, $context->getProperty('service.encoding'));
        				if($xmls->getValue('/skin/default/contentWidth')) {
        					$contentWidth = $xmls->getValue('/skin/default/contentWidth');
        				}
        			}
        		}*/
    }
    ?>
<script type="text/javascript">
//<![CDATA[
	var entryId = <?php 
    echo $entryId ? $entryId : 0;
    ?>
; 
	var skinContentWidth = <?php 
    echo $contentWidth;
    ?>
;

	function savePosition(oTextarea) {
		if (oTextarea.createTextRange)
			oTextarea.currentPos = document.selection.createRange().duplicate();
	}

	function insertTag(oTextarea, prefix, postfix) {
		if(isSafari && !isMinSafari3)
			var selection = window.getSelection;
		else
			var selection = document.selection;

		if (selection) {			
			if (oTextarea.createTextRange && oTextarea.currentPos) {				
				oTextarea.currentPos.text = prefix + oTextarea.currentPos.text + postfix;
				oTextarea.focus();
				savePosition(oTextarea);
			}
			else
				oTextarea.value = oTextarea.value + prefix + postfix;
		}
		else if (oTextarea.selectionStart != null && oTextarea.selectionEnd != null) {
			var s1 = oTextarea.value.substring(0, oTextarea.selectionStart);
			var s2 = oTextarea.value.substring(oTextarea.selectionStart, oTextarea.selectionEnd);
			var s3 = oTextarea.value.substring(oTextarea.selectionEnd);
			oTextarea.value = s1 + prefix + s2 + postfix + s3;
		}
		else
			oTextarea.value += prefix + postfix;
			
		return true;	
	}

	function editorChanged() {
		if ((entryManager != undefined) && (entryManager.saveAuto != undefined))
			entryManager.saveAuto();
	}

	function getEditor() {
<?php 
    $setEditor = $context->getProperty('editor.key');
    /// CHANGED FROM 1.8 : Editor only loads what user is using.
    foreach (getAllEditors() as $id => $editor) {
        if ($id == $setEditor) {
            getEditorInfo($id);
            // explicitly loads plugin code ($pluginURL, $pluginName returned as global)
            if (isset($editor['initfunc']) && function_exists($editor['initfunc'])) {
                echo "\t\t\n" . call_user_func($editor['initfunc'], $editor) . "\t\t\n";
                $pluginURL = $pluginName = "";
            }
        }
    }
    ?>
		return new TTDefaultEditor();
	}

	var editor = null;
	function setCurrentEditor(key,formatter) {
		var neweditor = getEditor();
		if (neweditor == null) {
			if (editor == null) {
				// this indicates currently selected editor is unavailable;
				// we fallback into the default editor.
				neweditor = new TTDefaultEditor();
			} else {
				return false;
			}
		}
//		if (editor != null) {
//			try { editor.syncTextarea(); } catch(e) {}
//			editor.finalize();
//		}
		editor = neweditor;
		editor.formatter = formatter;
		editor.initialize(document.getElementById("editWindow"));
		return true;
	}

	function changeEditor(key, formatter) {
		if (entryManager.nowsaving == true) {
			alert("<?php 
    echo _t('현재 자동 저장 중입니다. 저장이 완료된 후 다시 시도해 주세요.');
    ?>
");
			return false;
		}
		if (!confirm("<?php 
    echo _t('정말로 에디터를 변경하시겠습니까?');
    ?>
")) {
			return false;
		}
		if (editor != null) {
			try { editor.syncTextarea(); } catch(e) {}
			editor.finalize();
		}
		entryManager.changeEditor = true;
		entryManager.currentEditor = key;
		entryManager.saveDraft();
	}
	
	function reloadEditor() {
		var url = '<?php 
    echo $context->getProperty('uri.blog') . "/owner/entry/edit/";
    ?>
'+entryManager.entryId+'?editor='+entryManager.currentEditor;

		if ( entryManager.draftSaved == true) {
			url = url+'&draft=true';
		}
		if ( entryManager.returnURL != null ) {
			url = url+'&returnURL='+encodeURIComponent(entryManager.returnURL);			
		}
		window.location = url;		
	}
//]]>
</script>
<?php 
    printFormatterSelectScript();
}
Ejemplo n.º 3
0
function FM_TTML_bindAttachments($entryId, $folderPath, $folderURL, $content, $useAbsolutePath = false, $bRssMode = false)
{
    $context = Model_Context::getInstance();
    requireModel('blog.attachment');
    $blogid = getBlogId();
    getAttachments($blogid, $entryId);
    // For attachment caching.
    $view = str_replace('[##_ATTACH_PATH_##]', $useAbsolutePath ? $context->getProperty('uri.service') . "/attach/{$blogid}" : $folderURL, $content);
    $view = str_replace('http://tt_attach_path/', $useAbsolutePath ? $context->getProperty('uri.service') . "/attach/{$blogid}/" : $folderURL . '/', $view);
    $count = 0;
    $bWritedGalleryJS = false;
    while (($start = strpos($view, '[##_')) !== false && ($end = strpos($view, '_##]', $start + 4)) !== false) {
        $count++;
        $attributes = explode('|', substr($view, $start + 4, $end - $start - 4));
        $prefix = '';
        $buf = '';
        if ($attributes[0] == 'Gallery') {
            if (count($attributes) % 2 == 1) {
                array_pop($attributes);
            }
            if (defined('__TEXTCUBE_MOBILE__') || defined('__TEXTCUBE_IPHONE__')) {
                $images = array_slice($attributes, 1, count($attributes) - 2);
                for ($i = 0; $i < count($images); $i++) {
                    if (!empty($images[$i])) {
                        if ($i % 2 == 0) {
                            $buf .= '<div align="center">' . FM_TTML_getAttachmentBinder($images[$i], '', $folderPath, $folderURL, 1, $useAbsolutePath, $bRssMode) . '</div>';
                        } else {
                            if (strlen($images[$i]) > 0) {
                                $buf .= "<div align=\"center\">{$images[$i]}</div>";
                            }
                        }
                    }
                }
            } else {
                if ($bRssMode == true) {
                    $items = array();
                    for ($i = 1; $i < sizeof($attributes) - 2; $i += 2) {
                        array_push($items, array($attributes[$i], $attributes[$i + 1]));
                    }
                    $galleryAttributes = Misc::getAttributesFromString($attributes[sizeof($attributes) - 1]);
                    $images = array_slice($attributes, 1, count($attributes) - 2);
                    for ($i = 0; $i < count($images); $i++) {
                        if (!empty($images[$i])) {
                            if ($i % 2 == 0) {
                                $setWidth = $setHeight = 0;
                                if (list($width, $height) = @getimagesize("{$folderPath}/{$images[$i]}")) {
                                    $setWidth = $width;
                                    $setHeight = $height;
                                    if (isset($galleryAttributes['width']) && $galleryAttributes['width'] < $setWidth) {
                                        $setHeight = $setHeight * $galleryAttributes['width'] / $setWidth;
                                        $setWidth = $galleryAttributes['width'];
                                    }
                                    if (isset($galleryAttributes['height']) && $galleryAttributes['height'] < $setHeight) {
                                        $setWidth = $setWidth * $galleryAttributes['height'] / $setHeight;
                                        $setHeight = $galleryAttributes['height'];
                                    }
                                    if (intval($setWidth > 0) && intval($setHeight) > 0) {
                                        $tempProperty = 'width="' . intval($setWidth) . '" height="' . intval($setHeight) . '"';
                                    } else {
                                        $tempProperty = '';
                                    }
                                    $buf .= '<div align="center">' . FM_TTML_getAttachmentBinder($images[$i], $tempProperty, $folderPath, $folderURL, 1, $useAbsolutePath, $bRssMode) . '</div>';
                                }
                            } else {
                                if (strlen($images[$i]) > 0) {
                                    $buf .= "<div align=\"center\">{$images[$i]}</div>";
                                }
                            }
                        }
                    }
                } else {
                    $id = "gallery{$entryId}{$count}";
                    $cssId = "tt-gallery-{$entryId}-{$count}";
                    $contentWidth = Misc::getContentWidth();
                    $items = array();
                    for ($i = 1; $i < sizeof($attributes) - 2; $i += 2) {
                        array_push($items, array($attributes[$i], $attributes[$i + 1]));
                    }
                    $galleryAttributes = Misc::getAttributesFromString($attributes[sizeof($attributes) - 1]);
                    if (!isset($galleryAttributes['width'])) {
                        $galleryAttributes['width'] = $contentWidth;
                    }
                    if (!isset($galleryAttributes['height'])) {
                        $galleryAttributes['height'] = 3 / 4 * $galleryAttributes['width'];
                    }
                    if ($galleryAttributes['width'] > $contentWidth) {
                        $galleryAttributes['height'] = $galleryAttributes['height'] * $contentWidth / $galleryAttributes['width'];
                        $galleryAttributes['width'] = $contentWidth;
                    }
                    if ($useAbsolutePath == true && $bWritedGalleryJS == false) {
                        $bWritedGalleryJS = true;
                        $buf .= printScript('gallery.js');
                    }
                    $buf .= CRLF . '<div id="' . $cssId . '" class="tt-gallery-box">' . CRLF;
                    $buf .= '	<script type="text/javascript">' . CRLF;
                    $buf .= '		//<![CDATA[' . CRLF;
                    $buf .= "\t\t\tvar {$id} = new TTGallery(\"{$cssId}\");" . CRLF;
                    $buf .= "\t\t\t{$id}.prevText = \"" . _text('이전 이미지 보기') . "\"; " . CRLF;
                    $buf .= "\t\t\t{$id}.nextText = \"" . _text('다음 이미지 보기') . "\"; " . CRLF;
                    $buf .= "\t\t\t{$id}.enlargeText = \"" . _text('원본 크기로 보기') . "\"; " . CRLF;
                    $buf .= "\t\t\t{$id}.altText = \"" . _text('갤러리 이미지') . "\"; " . CRLF;
                    foreach ($items as $item) {
                        $setWidth = $setHeight = 0;
                        if (list($width, $height) = @getimagesize("{$folderPath}/{$item['0']}")) {
                            $setWidth = $width;
                            $setHeight = $height;
                            if (isset($galleryAttributes['width']) && $galleryAttributes['width'] < $setWidth) {
                                $setHeight = $setHeight * $galleryAttributes['width'] / $setWidth;
                                $setWidth = $galleryAttributes['width'];
                            }
                            if (isset($galleryAttributes['height']) && $galleryAttributes['height'] < $setHeight) {
                                $setWidth = $setWidth * $galleryAttributes['height'] / $setHeight;
                                $setHeight = $galleryAttributes['height'];
                            }
                            $item[1] = str_replace("'", '&#39;', $item[1]);
                            $buf .= $id . '.appendImage("' . ($useAbsolutePath ? $context->getProperty('uri.service') . "/attach/{$blogid}/{$item['0']}" : "{$folderURL}/{$item['0']}") . '", "' . htmlspecialchars($item[1]) . '", ' . intval($setWidth) . ', ' . intval($setHeight) . ");";
                        }
                    }
                    $buf .= "\t\t\t{$id}.show();" . CRLF;
                    $buf .= "\t\t//]]>" . CRLF;
                    $buf .= '	</script>' . CRLF;
                    $buf .= '	<noscript>' . CRLF;
                    foreach ($items as $item) {
                        $setWidth = $setHeight = 0;
                        if (list($width, $height) = @getimagesize("{$folderPath}/{$item['0']}")) {
                            $setWidth = $width;
                            $setHeight = $height;
                            if (isset($galleryAttributes['width']) && $galleryAttributes['width'] < $setWidth) {
                                $setHeight = $setHeight * $galleryAttributes['width'] / $setWidth;
                                $setWidth = $galleryAttributes['width'];
                            }
                            if (isset($galleryAttributes['height']) && $galleryAttributes['height'] < $setHeight) {
                                $setWidth = $setWidth * $galleryAttributes['height'] / $setHeight;
                                $setHeight = $galleryAttributes['height'];
                            }
                            $buf .= '<div class="imageblock center" style="text-align: center; clear: both;">';
                            if ($useAbsolutePath) {
                                $buf .= '		<img src="' . $context->getProperty('uri.service') . "/attach/" . $blogid . "/" . $item[0] . '" width="' . intval($setWidth) . '" height="' . intval($setHeight) . '" alt="' . _text('사용자 삽입 이미지') . '" />' . CRLF;
                            } else {
                                $buf .= '		<img src="' . $folderURL . "/" . $item[0] . '" width="' . intval($setWidth) . '" height="' . intval($setHeight) . '" alt="' . _text('사용자 삽입 이미지') . '" />' . CRLF;
                            }
                            if (!empty($item[1])) {
                                $buf .= '		<p class="cap1">' . $item[1] . '</p>' . CRLF;
                            }
                            $buf .= '</div>';
                        }
                    }
                    $buf .= '	</noscript>' . CRLF;
                    $buf .= '</div>' . CRLF;
                }
            }
        } else {
            if ($attributes[0] == 'iMazing') {
                if (defined('__TEXTCUBE_MOBILE__') || defined('__TEXTCUBE_IPHONE__') || $bRssMode == true) {
                    $images = array_slice($attributes, 1, count($attributes) - 3);
                    for ($i = 0; $i < count($images); $i += 2) {
                        if (!empty($images[$i])) {
                            $buf .= '<div>' . FM_TTML_getAttachmentBinder($images[$i], '', $folderPath, $folderURL, 1, $useAbsolutePath) . '</div>';
                        }
                    }
                    $buf .= $attributes[count($attributes) - 1];
                } else {
                    $params = Misc::getAttributesFromString($attributes[sizeof($attributes) - 2]);
                    $id = $entryId . $count;
                    $imgs = array_slice($attributes, 1, count($attributes) - 3);
                    $imgStr = '';
                    for ($i = 0; $i < count($imgs); $i += 2) {
                        if ($imgs[$i] != '') {
                            $imgStr .= $context->getProperty('service.path') . '/attach/' . $blogid . '/' . $imgs[$i];
                            if ($i < count($imgs) - 2) {
                                $imgStr .= '*!';
                            }
                        }
                    }
                    if (!empty($attributes[count($attributes) - 1])) {
                        $caption = '<p class="cap1">' . $attributes[count($attributes) - 1] . '</p>';
                    } else {
                        $caption = '';
                    }
                    $buf .= '<div style="clear: both; text-align: center"><img src="' . ($useAbsolutePath ? $context->getProperty('uri.service') : $context->getProperty('service.path')) . '/resources/image/gallery/gallery_enlarge.gif" alt="' . _text('확대') . '" style="cursor:pointer" onclick="openFullScreen(\'' . $context->getProperty('service.path') . '/iMazing?d=' . urlencode($id) . '&f=' . urlencode($params['frame']) . '&t=' . urlencode($params['transition']) . '&n=' . urlencode($params['navigation']) . '&si=' . urlencode($params['slideshowinterval']) . '&p=' . urlencode($params['page']) . '&a=' . urlencode($params['align']) . '&o=' . $blogid . '&i=' . $imgStr . '\',\'' . htmlspecialchars(str_replace("'", "&#39;", $attributes[count($attributes) - 1])) . '\',\'' . $context->getProperty('service.path') . '\')" />';
                    $buf .= '<div id="iMazingContainer' . $id . '" class="iMazingContainer" style="width:' . $params['width'] . 'px; height:' . $params['height'] . 'px;"></div><script type="text/javascript">//<![CDATA[' . CRLF;
                    $buf .= 'iMazing' . $id . 'Str = getEmbedCode(\'' . $context->getProperty('service.path') . '/resources/script/gallery/iMazing/main.swf\',\'100%\',\'100%\',\'iMazing' . $id . '\',\'#FFFFFF\',"image=' . $imgStr . '&amp;frame=' . $params['frame'] . '&amp;transition=' . $params['transition'] . '&amp;navigation=' . $params['navigation'] . '&amp;slideshowInterval=' . $params['slideshowinterval'] . '&amp;page=' . $params['page'] . '&amp;align=' . $params['align'] . '&amp;skinPath=' . $context->getProperty('service.path') . '/resources/script/gallery/iMazing/&amp;","false"); writeCode(iMazing' . $id . 'Str, "iMazingContainer' . $id . '");';
                    $buf .= '//]]></script><noscript>';
                    for ($i = 0; $i < count($imgs); $i += 2) {
                        $buf .= '<img src="' . ($useAbsolutePath ? $context->getProperty('uri.service') : $context->getProperty('service.path')) . '/attach/' . $blogid . '/' . $imgs[$i] . '" alt="" />';
                    }
                    $buf .= '</noscript>';
                    $buf .= $caption . '</div>';
                }
            } else {
                if ($attributes[0] == 'Jukebox') {
                    if (defined('__TEXTCUBE_MOBILE__') || defined('__TEXTCUBE_IPHONE__')) {
                        $sounds = array_slice($attributes, 1, count($attributes) - 3);
                        for ($i = 0; $i < count($sounds); $i += 2) {
                            if (!empty($sounds[$i])) {
                                echo "<a href=\"{$folderURL}/{$sounds[$i]}\">{$sounds[$i]}</a><br />";
                            }
                        }
                    } else {
                        $params = Misc::getAttributesFromString($attributes[sizeof($attributes) - 2]);
                        foreach ($params as $key => $value) {
                            if ($key == 'autoPlay') {
                                unset($params['autoplay']);
                                $params['autoplay'] = $value;
                            }
                        }
                        if ($params['visible'] == 1) {
                            $width = '250px';
                            $height = '27px';
                        } else {
                            $width = '0px';
                            $height = '0px';
                        }
                        $id = $entryId . $count;
                        $imgs = array_slice($attributes, 1, count($attributes) - 3);
                        $imgStr = '';
                        for ($i = 0; $i < count($imgs); $i++) {
                            if ($imgs[$i] == '') {
                                continue;
                            }
                            if ($i % 2 == 1) {
                                $imgStr .= urlencode($imgs[$i]) . '_*';
                                continue;
                            } else {
                                if ($i < count($imgs) - 1) {
                                    $imgStr .= $context->getProperty('service.path') . "/attach/{$blogid}/" . urlencode($imgs[$i]) . '*!';
                                }
                            }
                        }
                        if (!empty($attributes[count($attributes) - 1])) {
                            $caption = '<div class="cap1" style="text-align: center">' . $attributes[count($attributes) - 1] . '</div>';
                        } else {
                            $caption = '';
                        }
                        $buf .= '<div id="jukeBox' . $id . 'Div" style="margin-left: auto; margin-right: auto; width:' . $width . '; height:' . $height . ';"><div id="jukeBoxContainer' . $id . '" style="width:' . $width . '; height:' . $height . ';"></div>';
                        $buf .= '<script type="text/javascript">//<![CDATA[' . CRLF;
                        $buf .= 'writeCode(getEmbedCode(\'' . $context->getProperty('service.path') . '/resources/script/jukebox/flash/main.swf\',\'100%\',\'100%\',\'jukeBox' . $id . 'Flash\',\'#FFFFFF\',"sounds=' . $imgStr . '&amp;autoplay=' . $params['autoplay'] . '&amp;visible=' . $params['visible'] . '&amp;id=' . $id . '","false"), "jukeBoxContainer' . $id . '")';
                        $buf .= '//]]></script><noscript>';
                        for ($i = 0; $i < count($imgs); $i++) {
                            if ($i % 2 == 0) {
                                $buf .= '<a href="' . ($useAbsolutePath ? $context->getProperty('uri.service') : $context->getProperty('service.path')) . '/attach/' . $blogid . '/' . $imgs[$i] . '">';
                            } else {
                                $buf .= htmlspecialchars($imgs[$i]) . '</a><br/>';
                            }
                        }
                        $buf .= '</noscript>';
                        $buf .= '</div>';
                    }
                } else {
                    $contentWidth = Misc::getContentWidth();
                    switch (count($attributes)) {
                        case 4:
                            list($newProperty, $onclickFlag) = FM_TTML_createNewProperty($attributes[1], $contentWidth, $attributes[2]);
                            if (defined('__TEXTCUBE_MOBILE__') || defined('__TEXTCUBE_IPHONE__')) {
                                $buf = '<div>' . FM_TTML_getAttachmentBinder($attributes[1], $newProperty, $folderPath, $folderURL, 1, $useAbsolutePath) . "</div><div>{$attributes['3']}</div>";
                            } else {
                                if (trim($attributes[3]) == '') {
                                    $caption = '';
                                } else {
                                    $caption = '<p class="cap1">' . $attributes[3] . '</p>';
                                }
                                switch ($attributes[0]) {
                                    case '1L':
                                        $prefix = '<div class="imageblock left" style="float: left; margin-right: 10px;">';
                                        break;
                                    case '1R':
                                        $prefix = '<div class="imageblock right" style="float: right; margin-left: 10px;">';
                                        break;
                                    case '1C':
                                    default:
                                        $prefix = '<div class="imageblock center" style="text-align: center; clear: both;">';
                                        break;
                                }
                                $buf = $prefix . FM_TTML_getAttachmentBinder($attributes[1], $newProperty, $folderPath, $folderURL, 1, $useAbsolutePath, $bRssMode, $onclickFlag) . $caption . '</div>';
                            }
                            break;
                        case 7:
                            $eachImageWidth = floor(($contentWidth - 5 * 3) / 2);
                            list($newProperty1, $onclickFlag1) = FM_TTML_createNewProperty($attributes[1], $eachImageWidth, $attributes[2]);
                            list($newProperty2, $onclickFlag2) = FM_TTML_createNewProperty($attributes[4], $eachImageWidth, $attributes[5]);
                            if (defined('__TEXTCUBE_MOBILE__') || defined('__TEXTCUBE_IPHONE__')) {
                                $buf = '<div>' . FM_TTML_getAttachmentBinder($attributes[1], $newProperty1, $folderPath, $folderURL, 1, $useAbsolutePath, $bRssMode) . "</div><div>{$attributes['3']}</div>";
                                $buf .= '<div>' . FM_TTML_getAttachmentBinder($attributes[4], $newProperty2, $folderPath, $folderURL, 1, $useAbsolutePath, $bRssMode) . "</div><div>{$attributes['6']}</div>";
                            } else {
                                $cap1 = strlen(trim($attributes[3])) > 0 ? '<p class="cap1">' . $attributes[3] . '</p>' : '';
                                $cap2 = strlen(trim($attributes[6])) > 0 ? '<p class="cap1">' . $attributes[6] . '</p>' : '';
                                $buf = '<div class="imageblock dual" style="text-align: center;"><table cellspacing="5" cellpadding="0" border="0" style="margin: 0 auto;"><tr><td>' . FM_TTML_getAttachmentBinder($attributes[1], $newProperty1, $folderPath, $folderURL, 2, $useAbsolutePath, $bRssMode, $onclickFlag1) . $cap1 . '</td><td>' . FM_TTML_getAttachmentBinder($attributes[4], $newProperty2, $folderPath, $folderURL, 2, $useAbsolutePath, $bRssMode, $onclickFlag2) . $cap2 . '</td></tr></table></div>';
                            }
                            break;
                        case 10:
                            $eachImageWidth = floor(($contentWidth - 5 * 4) / 3);
                            list($newProperty1, $onclickFlag1) = FM_TTML_createNewProperty($attributes[1], $eachImageWidth, $attributes[2]);
                            list($newProperty2, $onclickFlag2) = FM_TTML_createNewProperty($attributes[4], $eachImageWidth, $attributes[5]);
                            list($newProperty3, $onclickFlag3) = FM_TTML_createNewProperty($attributes[7], $eachImageWidth, $attributes[8]);
                            if (defined('__TEXTCUBE_MOBILE__') || defined('__TEXTCUBE_IPHONE__')) {
                                $buf = '<div>' . FM_TTML_getAttachmentBinder($attributes[1], $newProperty1, $folderPath, $folderURL, 1, $useAbsolutePath, $bRssMode) . "</div><div>{$attributes['3']}</div>";
                                $buf .= '<div>' . FM_TTML_getAttachmentBinder($attributes[4], $newProperty2, $folderPath, $folderURL, 1, $useAbsolutePath, $bRssMode) . "</div><div>{$attributes['6']}</div>";
                                $buf .= '<div>' . FM_TTML_getAttachmentBinder($attributes[7], $newProperty3, $folderPath, $folderURL, 1, $useAbsolutePath, $bRssMode) . "</div><div>{$attributes['9']}</div>";
                            } else {
                                $cap1 = strlen(trim($attributes[3])) > 0 ? '<p class="cap1">' . $attributes[3] . '</p>' : '';
                                $cap2 = strlen(trim($attributes[6])) > 0 ? '<p class="cap1">' . $attributes[6] . '</p>' : '';
                                $cap3 = strlen(trim($attributes[9])) > 0 ? '<p class="cap1">' . $attributes[9] . '</p>' : '';
                                $buf = '<div class="imageblock triple" style="text-align: center"><table cellspacing="5" cellpadding="0" border="0" style="margin: 0 auto;"><tr><td>' . FM_TTML_getAttachmentBinder($attributes[1], $newProperty1, $folderPath, $folderURL, 3, $useAbsolutePath, $bRssMode, $onclickFlag1) . $cap1 . '</td><td>' . FM_TTML_getAttachmentBinder($attributes[4], $newProperty2, $folderPath, $folderURL, 3, $useAbsolutePath, $bRssMode, $onclickFlag2) . $cap2 . '</td><td>' . FM_TTML_getAttachmentBinder($attributes[7], $newProperty3, $folderPath, $folderURL, 3, $useAbsolutePath, $bRssMode, $onclickFlag3) . $cap3 . '</td></tr></table></div>';
                            }
                            break;
                            // 어디에도 해당되지 않을 경우 임시 태그를 되살림.
                        // 어디에도 해당되지 않을 경우 임시 태그를 되살림.
                        default:
                            $buf = '[###_###_###_' . implode('|', $attributes) . '_###_###_###]';
                            break;
                    }
                }
            }
        }
        $view = substr($view, 0, $start) . $buf . substr($view, $end + 4);
    }
    $view = preg_replace(array("@\\[###_###_###_@", "@_###_###_###\\]@"), array('[##_', '_##]'), $view);
    return $view;
}
Ejemplo n.º 4
0
function getEntryContentView($blogid, $id, $content, $formatter, $keywords = array(), $type = 'Post', $useAbsolutePath = true, $bRssMode = false)
{
    $ctx = Model_Context::getInstance();
    requireModel('blog.attachment');
    requireModel('blog.keyword');
    requireLibrary('blog.skin');
    $cacheKey = 'entry-' . $id . '-' . $type . ($bRssMode ? 'format' : 'summarize') . ($useAbsolutePath ? 'absoultePath' : 'relativePath') . (defined('__TEXTCUBE_MOBILE__') ? 'mobile' : '');
    $cache = pageCache::getInstance();
    $cache->reset($cacheKey);
    if (!defined('__TEXTCUBE_NO_ENTRY_CACHE__') && $cache->load()) {
        // If cached content exists.
        $view = $cache->contents;
    } else {
        // No cache is found.
        $content = fireEvent('Format' . $type . 'Content', $content, $id);
        $func = $bRssMode ? 'summarizeContent' : 'formatContent';
        $view = $func($blogid, $id, $content, $formatter, $keywords, $useAbsolutePath);
        if (defined('__TEXTCUBE_MOBILE__')) {
            $view = stripHTML($view, array('a', 'abbr', 'acronym', 'address', 'b', 'blockquote', 'br', 'cite', 'code', 'dd', 'del', 'dfn', 'div', 'dl', 'dt', 'em', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'hr', 'i', 'img', 'ins', 'kbd', 'li', 'ol', 'p', 'pre', 'q', 's', 'samp', 'span', 'strike', 'strong', 'sub', 'sup', 'u', 'ul', 'var'));
        }
        if (!$useAbsolutePath) {
            $view = avoidFlashBorder($view);
        }
        if (!empty($keywords) && is_array($keywords)) {
            $view = bindKeywords($keywords, $view);
        }
        // image resampling
        if (Setting::getBlogSettingGlobal('resamplingDefault') == true) {
            preg_match_all("@<img.+src=['\"](.+)['\"](.*)/?>@Usi", $view, $images, PREG_SET_ORDER);
            $view = preg_replace("@<img.+src=['\"].+['\"].*/?>@Usi", '[#####_#####_#####_image_#####_#####_#####]', $view);
            $contentWidth = Misc::getContentWidth();
            if (count($images) > 0) {
                for ($i = 0; $i < count($images); $i++) {
                    if (strtolower(Misc::getFileExtension($images[$i][1])) == 'gif') {
                        $view = preg_replace('@\\[#####_#####_#####_image_#####_#####_#####\\]@', $images[$i][0], $view, 1);
                        continue;
                    }
                    $attributes = preg_match('/(style="cursor: pointer;" onclick="open_img\\((.[^"]+)\\); return false;")/si', $images[$i][2], $matches) ? ' ' . $matches[1] : '';
                    $attributes .= preg_match('/(alt="([^"]*)")/si', $images[$i][2], $matches) ? ' ' . $matches[1] : ' alt="resize"';
                    $attributes .= preg_match('/(title="([^"]*)")/si', $images[$i][2], $matches) ? $title = ' ' . $matches[1] : '';
                    $tempFileName = array_pop(explode('/', $images[$i][1]));
                    if (preg_match('/(.+)\\.w(\\d{1,})\\-h(\\d{1,})\\.(.+)/', $tempFileName, $matches)) {
                        $tempFileName = $matches[1] . '.' . $matches[4];
                    }
                    $newImage = $images[$i][0];
                    if (file_exists(__TEXTCUBE_ATTACH_DIR__ . "/{$blogid}/{$tempFileName}")) {
                        $tempAttributes = Misc::getAttributesFromString($images[$i][2]);
                        $tempOriginInfo = getimagesize(__TEXTCUBE_ATTACH_DIR__ . "/{$blogid}/{$tempFileName}");
                        if (isset($tempAttributes['width']) && $tempOriginInfo[0] > $tempAttributes['width']) {
                            $image = Utils_Image::getInstance();
                            list($tempImageURL, $tempImageWidth, $tempImageHeight, $tempImageSrc) = $image->getImageResizer($tempFileName, array('width' => $tempAttributes['width']));
                            $newImage = "<img src=\"{$tempImageURL}\" width=\"{$tempImageWidth}\" height=\"{$tempImageHeight}\"{$attributes}/>";
                        }
                    }
                    $view = preg_replace('@\\[#####_#####_#####_image_#####_#####_#####\\]@', $newImage, $view, 1);
                }
            }
        }
        $cache->contents = $view;
        $cache->update();
    }
    $cache->reset();
    $view = fireEvent('View' . $type . 'Content', $view, $id);
    return $view;
}