tinyRTE vs tag <script>
Здравствуйте!
Поставил tinyrte_1.8.1.t3x. Пытаюсь вставить на страницу простенький JavaSctip: <script>alert('test');</script> после сохранения получаю: <p><!-- alert('test'); // --></p> это проблема конфигурации tinyRTE или самого TYPO3? поскольку для tinyRTE в ext_localconf.php файле я дописал ...script[charset|type|src]... : extended_valid_elements="a[t3page|href|target|onClick|t3url|t3target],form[method|action],input[type|name],select[name],script[charset|type|src],option[value|selected],hr[class|width|size|noshade],help;" Спасибо за помощь! |
JS вставлять в RTE? Оригинально.
|
Задание заключается в том, чтобы дописать дополнительный плагин для tinyRTE который будет позволять вставлять на страницу графики. Логика подобная вставке картинок. То-есть кликаешь в тулз-баре на кнопку "Insert/Modify chart" открывается попап окно где ты задаешь параметры графика, кликаешь "Insert chart", сгенерированный JavaScript код вставляется в WYSIWYG.
Как обойтись без "JS вставлять в RTE..." ? Примерно вот такой: $('#mychart') .chartInit({"painterType":"jsgraphics","background Color":"","textColor":"","axesColor":"","yMin":"0" ,"yMax":"300","xGrid":"0","yGrid":"10","xLabels ":["Mon","Tue","Wed","Thur","Fri","Sat","Sun"],"showLegend":false}) .chartAdd({"label":"Leads","type":"Bar","color":"# 008800","values":["100","124","222","44","123","23","99"]}) .chartAdd({"label":"Quotations","type":"Bar","colo r":"#000088","values":["132","24","122","94","23","43","19"],"stackedOn":""}) .chartAdd({"label":"Orders","type":"Bar","color":" #880000","values":["232","54","22","104","223","143","119"],"stackedOn":""}) .chartClear() .chartDraw(); |
А modify вы каким образом собираетесь реализовать в этом случае? Я бы лично загнал все вот эти параметры графика в один из атрибутов вставляемого тега и парсил бы уже либо на стороне пользователя уже js-ом, либо во время преобразования текста из того, что лежит в базе в то, что будет показано пользователю. А может быть, все эти паметры вообще хранить в базе данных, а вставлять просто пустой див с параметром class="chart char_id_1".
Понятно, что если функции модификации графика у вас нет, то можно и JS в RTE вставлять. Но тут проблема безопасности - как только вы разрешаете тег <script> в RTE, любой редактор может творить с вашим сайтом всё что хочет. |
Цитата:
Еще один момент. Как бы это все реализовать как экстеншн. То-есть, чтобы можно было инсталить на сайт как .t3x. Я так понимаю он должен обновить сорсы tinyRTE + добавить таблицы для хранения графиков + как-то срабатывать в фронт-енде чтобы отображать эти графики из БД. Реально ли это? |
Я давно не лазил в код TYPO3 и тем более tinyrte, но:
1) вам нужно создать таблицы. читайте мануалы по созданию расширений и ext_tables.php 2) любой вменяемый визуальный редактор должен иметь хуки для внедрения в себя плагинов в виде кнопок. То есть необходимости лазить куда-то там и править исходники tinyrte быть не должно 3) срабатывать во фронтэнде конечно можно, надо воспользоваться одним из хуков TYPO3. |
3) срабатывать во фронтэнде конечно можно, надо воспользоваться одним из хуков TYPO3.
Воспользовался хуком который позволяет создавать свой тег и во фронтэнде меняет его на нужний мне JS скрипт. t3lib_extMgm::addTypoScript($_EXTKEY,'setup',' tt_content.text.20.parseFunc.tags.charttag = < plugin.'.t3lib_extMgm::getCN($_EXTKEY).'_pi1 ',43); Это для меня не очень удобно. Хочу переделать этот хук чтобы он парсал не мой тег, а картинку: <img id="chart_11" src="typo3conf/ext/tinyrte/tiny_mce/plugins/typo3chart/images/chart.jpg" alt="" /> как бы так его подправить? |
Смотреть как обрабатывается <img>
|
Часовой пояс GMT +4, время: 08:12. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot