Changeset 1390
- Timestamp:
- 09/14/06 14:34:26 (2 years ago)
- Location:
- trunk
- Files:
-
- 5 modified
-
blog/owner/setting/blog/editor/index.php (modified) (1 diff)
-
blog/owner/setting/blog/index.php (modified) (2 diffs)
-
lib/model/blogSetting.php (modified) (1 diff)
-
lib/view/ownerView.php (modified) (1 diff)
-
script/editor.js (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/blog/owner/setting/blog/editor/index.php
r620 r1390 2 2 define('ROOT', '../../../../..'); 3 3 require ROOT . '/lib/includeForOwner.php'; 4 if (setEditor($owner, $_GET['editorMode'] , $_GET['strictXHTML'])) {4 if (setEditor($owner, $_GET['editorMode'])) { 5 5 respondResultPage(0); 6 6 } -
trunk/blog/owner/setting/blog/index.php
r1096 r1390 309 309 310 310 var editorMode = "<?=getUserSetting('editorMode', 1)?>"; 311 var strictXHTML = "<?=getUserSetting('strictXHTML', 0)?>";312 311 function setEditor() { 313 if (document.forms[0].editorMode.value != editorMode || document.forms[0].strictXHTML.value != strictXHTML) {314 var request = new HTTPRequest("GET", "<?=$blogURL?>/owner/setting/blog/editor/?editorMode=" + document.forms[0].editorMode.value + "&strictXHTML=" + document.forms[0].strictXHTML.value);312 if (document.forms[0].editorMode.value != editorMode) { 313 var request = new HTTPRequest("GET", "<?=$blogURL?>/owner/setting/blog/editor/?editorMode=" + document.forms[0].editorMode.value); 315 314 request.onSuccess = function() { 316 315 editorMode = document.forms[0].editorMode.value; 317 strictXHTML = document.forms[0].strictXHTML.value;318 316 PM.showMessage("<?=_t('저장되었습니다')?>", "center", "bottom"); 319 317 } … … 719 717 </tr> 720 718 </table> 721 <table cellspacing="0">722 <tr>723 <td class="entryEditTableLeftCell"><?=_t('XHTML 준수')?> |</td>724 <td>725 <?726 $strictXHTML = getUserSetting('strictXHTML', 0);727 ?>728 <select name="strictXHTML">729 <option value="0"<?=$strictXHTML==0?' selected':''?>><?=_t('처리하지 않음')?></option>730 <option value="1"<?=$strictXHTML==1?' selected':''?>><?=_t('올바른 XHTML 코드로 다듬어 출력')?></option>731 </select>732 </td>733 </tr>734 </table>735 719 <div style="padding-left:132px"> 736 720 <table class="buttonTop" cellspacing="0" onclick="setEditor()"> -
trunk/lib/model/blogSetting.php
r1252 r1390 344 344 } 345 345 346 function setEditor($owner, $editorMode , $strictXHTML) {346 function setEditor($owner, $editorMode) { 347 347 if(!setUserSetting('editorMode', $editorMode)) 348 348 return false; 349 if(!setUserSetting('strictXHTML', $strictXHTML))350 return false;351 349 return true; 352 350 } -
trunk/lib/view/ownerView.php
r1269 r1390 18 18 //<![CDATA[ 19 19 var entryId = <?=$entryId ? $entryId : 0?>; 20 var strictXHTML = <?=getUserSetting('strictXHTML', 0)==1 ? 'true' : 'false'?>;21 20 var skinContentWidth = <?=$contentWidth?>; 22 21 var s_enterURL = "<?=_t('URL을 입력하세요')?>"; -
trunk/script/editor.js
r1171 r1390 432 432 var body = result[0]; 433 433 str = str.replaceAll(body, '<embed loop="true" menu="false" quality="high" ' + this.parseImageSize(body, "string") + ' type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" src="' + this.parseAttribute(body, "longdesc") + '"></embed>'); 434 }435 436 if(!strictXHTML)437 return str;438 439 // <b> -> <strong>, <i> -> <em>, <u> -> <ins>, <strike> -> <del>440 str = str.replace(new RegExp("<b([^>]*?)>(.*?)</b>", "gi"), "<strong$1>$2</strong>");441 str = str.replace(new RegExp("<i([^>]*?)>(.*?)</i>", "gi"), "<em$1>$2</em>");442 str = str.replace(new RegExp("<u([^>]*?)>(.*?)</u>", "gi"), "<ins$1>$2</ins>");443 str = str.replace(new RegExp("<strike([^>]*?)>(.*?)</strike>", "gi"), "<del$1>$2</del>");444 445 var regTag = new RegExp("<([^\\s>]+)\\s*([^>]*)(/?)>", "g");446 while(result = regTag.exec(str)) {447 var tagBody = result[0];448 var tagStart = "<" + result[1];449 var tagFinish = result[3] + ">";450 451 if(tagStart.indexOf("<!--") == 0)452 continue;453 454 var attributeString = result[2];455 456 var regAttribute = new RegExp("(\\s*[^=]*)=((?:\"[^\"]+\")|(?:'[^']+')|(?:[^\\s]+))", "g");457 458 var attributes = new Array();459 460 while(result = regAttribute.exec(attributeString))461 attributes.push(new Array(result[1].trim(), result[2].replace(new RegExp("['\"](.*)['\"]", "g"), "$1").trim()));462 463 var sb = new StringBuffer();464 465 for(var i in attributes) {466 if(trim(attributes[i][0].toLowerCase()) == "style") {467 var regStyle = new RegExp("([\\w-]+): ([^;]*)", "gi");468 var sbStyle = new StringBuffer();469 470 while(result = regStyle.exec(attributes[i][1]))471 sbStyle.append(result[1].toLowerCase() + ": " + result[2] + "; ");472 473 sb.append(" style=\"" + sbStyle.toString().replace(new RegExp("(.*); $", "g"), "$1") + "\"");474 }475 else476 sb.append(" " + attributes[i][0].toLowerCase() + "=\"" + attributes[i][1] + "\"");477 }478 479 var tagAttributes = sb.toString();480 481 switch(tagStart.toLowerCase()) {482 case "<img":483 case "<br":484 case "<hr":485 tagFinish = (tagFinish == ">") ? "/>" : tagFinish;486 }487 488 if(tagStart.toLowerCase() == "<img" && tagAttributes.indexOf("alt=") == -1)489 tagFinish = ' alt=""' + tagFinish;490 491 str = str.replaceAll(tagBody, tagStart.toLowerCase() + tagAttributes + tagFinish);492 434 } 493 435
