2011-01-31 46 views
1

我搜索了2天,我似乎無法找到解決我的問題。在Tinymce內部放置<textarea>(是的,這再次)

因此,在我的CMS中,將內容加載並保存到TinyMCE中的正常操作可以正常工作,但當我爲聯繫表單添加textarea或任何其他內容時,Lucifer的世界都可以正常運行。代碼去如下:

才能發佈數據,從而節省:

//get page info 

$pnfo = $dbase->getPage("page_a_link", $page2edit); 

if($_POST['pageedit']!='') { 

    //to be success message 
    $sHeader = '<span style="text-align: center;"><h3><span style="color:green;">' 
    .ucfirst($page2edit).' has Been Succesfully Updated</span></h3></span>'; 

    //content to be injected into page 
     $sContent = "<? "; 

     // add access level 
     if ($pnfo['page_level'] !== GUEST_LEVEL) { 
      if ($pnfo['page_level'] == MEMBER_LEVEL) { 
       $sContent .=" \$access_level='members';"; 
      } else { 
       $sContent .=" \$access_level=".$pnfo['page_level'].";";   
      } 
      $sContent .=" include('../inc/pageauth.inc.php'); ";  
     } 

     $sContent .=" ?> "; 

     //add posted content 
     $sContent .= stripslashes($_POST['pageedit']); 

     // inject article module 
     if ($pnfo['isblog'] == "1") { 
      $sContent .="<? \$page='".$pnfo['page_bread']."'; include('../inc/modules.inc/articles.mod/inject.articles.mod.php'); ?>"; 
     } 

    //add content to page 
    file_put_contents("../../../content/page/tpl/".$page2edit,$sContent); 

    // echo success message 
    echo $sHeader; 
} 

和渲染它TinyMCE的


$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">'; 
    ob_start(); 
    error_reporting(0); 
    include('../../../content/page/tpl/'.$page2edit); 
    $render_pages .= ob_get_clean(); 
$render_pages .= '</textarea>'; 

和一個重要組成部分,CODE儘可能地展示(你將會讀到INA MIN) 我的提交按鈕:


$render_pages .= '<input type="image" onclick="javascript: window.open(\'pages\',\'_self\')"'; 

請記住,一切都運行完美,不添加<TEXTAREA>

好了,所以當我添加一個文本區域發生的事情是,當它保存,它說它保存但不是頁面本身,而是「頁面」,這是我發佈到(我的提交按鈕)。

我明白了一個文本應該如何被渲染,這裏是我嘗試失敗的所有解決方案:


1:

$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">'; 
    ob_start(); 
    error_reporting(0); 
    $src = include '../../../content/page/tpl/'.$page2edit; 
    $render_pages .= htmlspecialchars($src); (also with ENT_NOQUOTES) 
    $render_pages .= ob_get_clean(); 
$render_pages .= '</textarea>'; 

2:

$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">'; 
    ob_start(); 
    error_reporting(0); 
    htmlspecialchars(include('../../../content/page/tpl/'.$page2edit)); 
    $render_pages .= ob_get_clean(); 
$render_pages .= '</textarea>'; 

3:

$sContent .= stripslashes(htmlspecialchars($_POST['pageedit'])); 

4:

$file = file_get_contents('../../../content/page/tpl/'.$page2edit, true); 
$file = str_replace('</textarea>', htmlspecialchars('</textarea>'), $file); 
$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">'; 
    $render_pages .= $file; 
$render_pages .= '</textarea>'; 

5:

$file = file_get_contents('../../../content/page/tpl/'.$page2edit, true); 
$file = str_replace('</textarea>', htmlspecialchars('</textarea>'), $file); 
$render_pages .= '<textarea id="pageedit" name="pageedit" style="width:900px;height:800px;display:block;">'; 
    ob_start(); 
    $render_pages .= $file; 
    $render_pages .= ob_get_clean(); 
$render_pages .= '</textarea>'; 

(我在所有的解決方案試圖ヶ輛以及)

沒有什麼工作,所有的解決方案打破了頁1或2方式:


1.

處斷裂呼應成功頭,但與「頁面」作爲頁面名稱,而不是實際的頁面名稱要保存(請記住,「頁」是鏈接IM張貼在我的圖像提交按鈕 - 它調用一個簡單的java代碼來提交表單 - 我肯定你們大多數人都知道這一點),它會阻止頁面的其餘部分不顯示

2。

與第一個相同,但它會破壞頁面的其餘部分。


-.-我很困惑這一點。 >。 <

幫忙,也許? O.O

PS:我試圖格式化這篇文章的權利,不斷搞亂我認爲雖然。

+0

感謝三十歲爲我編輯 – nkzle 2011-01-31 15:54:54

回答

1

Yeeeeeea,所以我只是需要'重置'的內容,如在清除頁面。將其加載到tinymce中作爲空白頁面,然後在已經存在的解決方案3中添加textarea標籤,一切正常。 ^。^

簡而言之,我必須在將它轉換爲tinymce之前轉換textarea文件,然後在保存之前將其轉換回來(現在看起來像是一個巨大的duh),現在保存和編輯textarea的iny TinyMCE很好。