Помещение <textarea>внутри tinymce (да, это снова) - PullRequest
1 голос
/ 31 января 2011

Я искал и искал в течение 2 дней, и я не могу найти решение своей проблемы.

Итак, в моей CMS нормальная операция по загрузке и сохранению контента в TinyMCE работает нормально, но всеотправляется в мир Люцифера, когда я добавляю текстовую область для контактной формы или чего-либо в этом роде.Код выглядит следующим образом:

ПОЛУЧЕНО ПОСТАВЛЕННЫЕ ДАННЫЕ ДЛЯ СОХРАНЕНИЯ:

//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>

Хорошо, поэтому, когда я добавляю текстовую область, то происходит, когда она сохраняет, она говорит, что сохраняет, но не саму страницу, а «страницы», что я и публикую (кнопка «Отправить»),

Я понимаю, как должна отображаться текстовая область, и вот все решения, которые я попробовал, но не удалось:


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>';

(и я попробовал htmlentities во всех решениях какхорошо)

Ничего не работает, все решения разбивают страницу 1 или 2 способами:


1.

разрывается при повторении заголовка успеха, но с "страницами"в качестве имени страницы вместо фактического имени страницы, которую нужно сохранить (помните, «страницы» - это ссылка, которую я публикую на моей кнопке отправки изображения - которая вызывает простой Java-код для отправки формы - я уверен, что большинство из вас поняли это)и он останавливает остальную часть страницы, показывая

2.

так же, как первый, но это не нарушает остальную часть страницы.


-.- Я так смущен этим.>. <</p>

Помощь, возможно?oO

PS: Я попытался правильно отформатировать этот пост, но, думаю, продолжаю портить.

1 Ответ

1 голос
/ 31 января 2011

Даааааа, так что мне просто нужно было «сбросить» содержимое, как в случае очистки страницы. загрузите его в виде пустой страницы, затем добавили тег textarea с уже созданным решением 3 и все хорошо. ^. ^

Короче говоря, мне нужно было преобразовать файл textarea перед рендерингом в крошечном формате, ТО затем преобразовать его обратно непосредственно перед сохранением (теперь это кажется огромным), и теперь бесконечный красивый цикл сохранения и редактирования iny TinyMCE из textarea хорош.

...