@@ -571,7 +571,7 @@ public function publishPageDraft(Page $draftPage, array $input)
571571
572572 $ draftPage ->slug = $ this ->findSuitableSlug ('page ' , $ draftPage ->name , false , $ draftPage ->book ->id );
573573 $ draftPage ->html = $ this ->formatHtml ($ input ['html ' ]);
574- $ draftPage ->text = strip_tags ($ draftPage ->html );
574+ $ draftPage ->text = $ this -> pageToPlainText ($ draftPage ->html );
575575 $ draftPage ->draft = false ;
576576 $ draftPage ->revision_count = 1 ;
577577
@@ -713,6 +713,17 @@ public function renderPage(Page $page)
713713 return $ content ;
714714 }
715715
716+ /**
717+ * Get the plain text version of a page's content.
718+ * @param Page $page
719+ * @return string
720+ */
721+ public function pageToPlainText (Page $ page )
722+ {
723+ $ html = $ this ->renderPage ($ page );
724+ return strip_tags ($ html );
725+ }
726+
716727 /**
717728 * Get a new draft page instance.
718729 * @param Book $book
@@ -816,7 +827,7 @@ public function updatePage(Page $page, $book_id, $input)
816827 $ userId = user ()->id ;
817828 $ page ->fill ($ input );
818829 $ page ->html = $ this ->formatHtml ($ input ['html ' ]);
819- $ page ->text = strip_tags ( $ page -> html );
830+ $ page ->text = $ this -> pageToPlainText ( $ page );
820831 if (setting ('app-editor ' ) !== 'markdown ' ) $ page ->markdown = '' ;
821832 $ page ->updated_by = $ userId ;
822833 $ page ->revision_count ++;
@@ -933,7 +944,7 @@ public function restorePageRevision(Page $page, Book $book, $revisionId)
933944 $ revision = $ page ->revisions ()->where ('id ' , '= ' , $ revisionId )->first ();
934945 $ page ->fill ($ revision ->toArray ());
935946 $ page ->slug = $ this ->findSuitableSlug ('page ' , $ page ->name , $ page ->id , $ book ->id );
936- $ page ->text = strip_tags ($ page ->html );
947+ $ page ->text = $ this -> pageToPlainText ($ page ->html );
937948 $ page ->updated_by = user ()->id ;
938949 $ page ->save ();
939950 $ this ->searchService ->indexEntity ($ page );
@@ -953,7 +964,7 @@ public function updatePageDraft(Page $page, $data = [])
953964 if ($ page ->draft ) {
954965 $ page ->fill ($ data );
955966 if (isset ($ data ['html ' ])) {
956- $ page ->text = strip_tags ($ data ['html ' ]);
967+ $ page ->text = $ this -> pageToPlainText ($ data ['html ' ]);
957968 }
958969 $ page ->save ();
959970 return $ page ;
0 commit comments