2013-11-16 3 views
0

Я пытаюсь интегрировать CKEditor в мою простую CMS. Я получил его, чтобы он появился на странице, но он просто выше всего. Мне интересно, как попасть в нужное место, под текстовым полем заголовка? Вот мой код:Попытка интегрировать CKEditor на php-странице

require_once 'conn.php'; 
include_once 'ckeditor/ckeditor.php'; 
$CKEditor = new CKEditor(); 
$CKEditor->editor('body'); 
$title= ''; 
$body= ''; 
$article= ''; 
$author_id= ''; 
if (isset($_GET['a']) 
    and $_GET['a'] == 'edit' 
    and isset($_GET['article']) 
    and $_GET['article']) { 
     $sql = "SELECT title, body, author_id FROM cms_articles " . 
     "WHERE article_id=" . $_GET['article']; 
     $result = mysql_query($sql, $conn) or 
      die ('Could not retrieve article data: ' . mysql_error()); 
     $row = mysql_fetch_array($result); 
     $title = $row['title']; 
     $body = $row['body']; 
     $article = $_GET['article']; 
     $author_id = $row['author_id']; 
    } 
    require_once 'header.php'; 
?> 
<form method="post" action="transact-article.php"> 
    <h2>Compose Article</h2> 
    <p> 
     Title: <br /> 
     <input type="text" class="title" name="title" maxlength="255" value="<?php echo htmlspecialchars($title); ?>" /> 
    </p> 
    <p> 
     Body: <br /> 
     <textarea class="body" name="body" id="body" rows="10" cols="60"><?php echo htmlspecialchars($body); ?></textarea> 
    </p> 
    <p> 
     <?php 
      echo '<input type="hidden" name="article" value="' . 
      $article . "\" />\n"; 
      if ($_SESSION['access_lvl'] < 2) { 
       echo '<input type="hidden" name="author_id" value="' . 
       $author_id . "\" />\n"; 
      } 
      if ($article) { 
       echo '<input type="submit" class="submit" name="action" ' . 
       "value=\"Save Changes\" />"; 
      } else { 
       echo '<input type="submit" class="submit" name="action" ' . 
       "value=\"Submit New Article\" />"; 
      } 
     ?> 
    </p> 
</form> 
+0

Я изменил идентификатор BODY: textarea на ckeditor и достал поля размера, и он положил его на место. Но у меня есть еще один экземпляр редактора, который все еще открыт в верхней части страницы. ? –

+0

Какой код вы используете для замены CKEditor? Возможно ли увидеть эту страницу? (Полный) визуализированный HTML был бы более полезен, чем источник здесь, ваша проблема маловероятна для PHP, и даже если это так, вы обычно можете найти лучшие подсказки в визуализированном HTML и JavaScript. – Nenotlep

+0

Я могу опубликовать скриншот, но я не совсем уверен, как это сделать. ? –

ответ

1

Лично я не думаю, что вам нужна библиотека PHP. Просто добавьте

<div contenteditable="true"> 
    Editable text 
</div> 

как ваш редактируемые, а затем просто скрипт, чтобы он работает:

<script type="text/javascript" src="/path/to/ckeditor/ckeditor.js"></script> 

Тем не менее, вы можете быть в состоянии передать id вашего текстового поля в библиотеку PHP. Чтобы избежать путаницы с тегом body, переименуйте id и name этого элемента управления на editable_content или аналогичные. И, как я упоминал выше, попробуйте вместо этого использовать div.

+1

Согласен, это может быть лучший путь, просто изучая и используя чистый JavaScript CKEditor и создавая вокруг него. Таким образом, вы знаете все, что происходит, и хорошо разбираетесь в ситуации, как в реализации HTML/JS, так и в бэкэнд-PHP, который сохраняет отправленный контент. Это то, что я делаю для asp.net. – Nenotlep

Смежные вопросы