Zum Inhalt springen

javascript im bodytext ermöglichen

Erstellt am 24. Juli 2010 · 2 Antworten · letzte Antwort am 26. Juli 2010

Tags: tt_news, Frage

rali ·

Hallo liebes Forum,

ich habe folgendes Problem:

Die News werden bei uns aus einer Textdatei importiert.
Sie sollen aber auch über den RTE eingepflegt werden können.

Der Bodytext enthält teilweise eingebettetes Javascript (Videoplayer).

Wie kann ich es erreichen, dass die Tags nicht deaktiviert werden?

Der Inhalt des Feldes bodytext der Tabelle tt_news ist beispielsweise:

<!-- Start of Brightcove Player -->

<div style="display:none">

</div>

<!--
By use of this code snippet, I agree to the Brightcove Publisher T and C
found at http://corp.brightcove.com/legal/terms_publisher.cfm.
-->

<script type="text/javascript" src="http://admin.brightcove.com/js/BrightcoveExperiences.js"></script>

<object id="myExperience" class="BrightcoveExperience">
  <param name="bgcolor" value="#FFFFFF" />
  <param name="width" value="480" />
  <param name="height" value="270" />
  <param name="playerID" value="73042955001" />
  <param name="publisherID" value="55856293001"/>
  <param name="isVid" value="true" />
  <param name="isUI" value="true" />
  <param name="optimizedContentLoad" value="true" />
    <param name="@videoList" value="77389840001" />
</object>

<!--
This script tag will cause the Brightcove Players defined above it to be created as soon
as the line is read by the browser. If you wish to have the player instantiated only after
the rest of the HTML is processed and the page load is complete, remove the line.
-->
<script type="text/javascript">brightcove.createExperiences();</script>

<!-- End of Brightcove Player -->

Dass das Video korrekt angezeigt wird habe ich erreicht, indem ich im SetupTS der Singelansicht-Seite folgende Zeilen eingetragen habe:

plugin.tt_news.displaySingle.content_stdWrap.parseFunc {
  nonTypoTagStdWrap.encapsLines.nonWrappedTag >
  allowTags = script, param, object, a, abbr, acronym, address, blockquote, b, br, caption, center, cite, code, div, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, li, link, ol, p, pre, q, sdfield, span, strike, strong, sub, sup, table, thead, tbody, tfoot, td, th, tr, tt, u, ul
}

Im TSconfig des Sysordners, in welchem sich die News befinden habe ich im Moment diese Einträge:

RTE.default.proc {
dontConvBRtoParagraph = 1
    allowTags = script, param, object, a, abbr, acronym, address, blockquote, b, br, caption, center, cite, code, div, em, font, h1, h2, h3, h4, h5, h6, hr, i, img, li, link, ol, p, pre, q, sdfield, span, strike, strong, sub, sup, table, thead, tbody, tfoot, td, th, tr, tt, u, ul
    denyTags >
    entryHTMLparser_db.allowTags < RTE.default.proc.allowTags
    entryHTMLparser_db.denyTags >
}

Bin ich damit auf dem Holzweg?

Nachdem ich diesen Datensatz im Backend geöffne und noch nicht gespeichert habe, sehe ich folgenden Bodytext in der HTML-Ansicht des RTE (rtehtmlarea):

<p><b>Konzert 25.Juni 2010, Bogen2</b></p>
<p>&nbsp;</p>
<p></p>
<div style="display: none;"></div>
<p>&nbsp;</p>
<p></p>
<p>&nbsp;</p>
<p></p>
<p><object id="myExperience" class="BrightcoveExperience"></object></p>
<p>  </p><param name="bgcolor" value="#FFFFFF" /><p></p>
<p>  </p><param name="width" value="480" /><p></p>
<p>  </p><param name="height" value="270" /><p></p>
<p>  </p><param name="playerID" value="73042955001" /><p></p>
<p>  </p><param name="publisherID" value="55856293001" /><p></p>
<p>  </p><param name="isVid" value="true" /><p></p>
<p>  </p><param name="isUI" value="true" /><p></p>
<p>  </p><param name="optimizedContentLoad" value="true" /><p></p>
<p>    </p><param name="@videoList" value="85691401001" /><p></p>
<p></p>
<p>&nbsp;</p>
<p></p>
<p></p>
<p>&nbsp;</p>
<p></p>
<div style="display: none;"><p>&nbsp;</p>
<p>&nbsp;</p></div>

Wenn ich diesen Datensatz dann speichere, sehe ich Folgendes in der HTML-Ansicht des RTE:

<p><b>Konzert 25.Juni 2010, Bogen2</b></p>
<p>&nbsp;</p>
<div style="display: none;"></div>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><object id="myExperience" class="BrightcoveExperience"></object></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div style="display: none;"><p>&nbsp;</p>
<p>&nbsp;</p></div>

Der Inhalt des Feldes bodytext der Tabelle tt_news ist dann:

<b>Konzert 25.Juni 2010, Bogen2</b>


<div style="display: none;"></div>




<object id="myExperience" class="BrightcoveExperience"></object>
  

  

  

  

  

  

  

  

    







<div style="display: none;">
</div>
Blu3ye ·

Ähm wie?? ^^

Ich wüsste nicht, dass im RTE auch JS gespeichert wird. Kann zwar sein, aber vermute jetzt einfach mal, dass es sicherheitsmäßig rausgelöscht wird.

Wenn es immer der selbe JS-Code ist, dann würd ich das manuell in die Seite einfügen bspw. über das CE "HTML einfügen"

rali ·

Ich kann das HTML-Objekt leider nicht benutzen, da es sich um News der Rubrik Videoclips handelt. Die Videoclips werden in die redaktionellen Texte eingebettet.

Habe jetzt schon einmal folgende Lösung für RTE:

RTE.default {
  removeTags =
  removeTagsAndContents =
  hideTags =
  proc {
    preserveDIVSections = 1
    dontRemoveUnknownTags_db = 1
    dontConvBRtoParagraph = 1
    allowTags = script, object, param
    denyTags >
    entryHTMLparser_db.allowTags < .allowTags
    entryHTMLparser_db.denyTags >
    exitHTMLparser_db.allowTags < .allowTags
    exitHTMLparser_db.denyTags >
  }
}

Ich könnte mir auch vorstellen, eine Benutzergruppe für die Videoclips anzulegen, für die ich dann den RTE komplett abschalte.