我搜索并搜索了2天,我似乎找不到解决问题的方法。
因此,在我的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>';
和显示的重要部分(你为什么不读) 我的提交按钮:
$render_pages .= '<input type="image" onclick="javascript: window.open(\'pages\',\'_self\')"';
保持谨慎,一切工作完美而不添加<TEXTAREA>
好吧,所以当我添加一个textarea时会发生什么,当它保存时,它表示它保存但不是页面本身,而是“页面”,这是我发布到的(我的提交按钮)。
我理解应该如何呈现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
在回显成功标题时中断,但使用“pages”作为页面名称而不是要保存的实际页面名称(请记住,“pages”是我在图像提交按钮中发布的链接 - 这称为简单提交表单的java代码 - 我相信你们大多数人认为那样)并且它会阻止页面的其余部分显示
2
与第一个相同,但它会打破页面的其余部分。
-.-我对此很困惑。 &GT;。&LT;
或许,帮助? o.OPS:我试图将这篇文章设置为格式正确,但我认为还是搞砸了。
答案 0 :(得分:1)
Yeeeeeea,所以我只需要'重置'内容,就像清除页面一样。将它作为空白页加载到tinymce中,然后添加了textarea标签,解决方案3已经就位,一切都很好。 ^。^
简短的甜蜜,我不得不转换textarea文件,然后再将它转换为tinymce然后在保存之前将其转换回来(现在看起来像是一个巨大的duh),现在保存和编辑textarea的iny TinyMCE的无限美妙循环很好。