Edytor WYSIWYG usuwa iframe

Czasami pojawia sie potrzeba aby osadzić na naszej stronię pływająca ramkę iframe. Za pomocą takich ramek umieszczane sa np:

  • filmy YouTube
  • mapy Google
  • reklamy sieci afiliacyjnych

Niestety domyślny edytor WYSIWYG dostarczony z Magento nie obsługuje elementów iframe. Powoduje to że po przełączeniu się do wizualnej edycji strony na której umieszczony mamy np film z YouTube po naszym filmie zostaną tylko śmieci.

Problem ten możemy rozwiązać edytując plik :

js/mage/adminhtml/wysiwyg/tiny_mce/setup.js

Odnajdujemy w nim fragment

var settings = {
        mode : (mode != undefined ? mode : 'none'),
        elements : this.id,
        theme : 'advanced',
        plugins : plugins,
        theme_advanced_buttons1 : magentoPlugins + 'magentowidget,bold,italic,underline,strikethrough, |,justifyleft,justifycenter,justifyright,justifyfull, |,styleselect,formatselect,fontselect,fontsizeselect',
        theme_advanced_buttons2 : 'cut,copy,paste,pastetext,pasteword, |,search,replace,|,bullist,numlist, |,outdent,indent,blockquote,|,undo,redo, |,link,unlink,anchor,image,cleanup,help,code, |,forecolor,backcolor',
        theme_advanced_buttons3 : 'tablecontrols, |,hr,removeformat,visualaid, |,sub,sup, |,charmap,iespell,media,advhr, |,ltr,rtl,|,fullscreen',
        theme_advanced_buttons4 : 'insertlayer,moveforward,movebackward,absolute, |,styleprops, |,cite,abbr,acronym,del,ins,attribs, |,visualchars,nonbreaking,pagebreak',
        theme_advanced_toolbar_location : 'top',
        theme_advanced_toolbar_align : 'left',
        theme_advanced_statusbar_location : 'bottom',
        theme_advanced_resizing : true,

I poniżej dodajemy

extended_valid_elements : 'iframe[src|style|width|height|scrolling|marginwidth|marginheight|frameborder] ,style,script',