Просмотр полной версии : 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","backgroundColor":"","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","color":"#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, любой редактор может творить с вашим сайтом всё что хочет.
А может быть, все эти паметры вообще хранить в базе данных, а вставлять просто пустой див с параметром class="chart char_id_1".
Хорошо, это в принципе довольно таки хороший вариант. Попробую двигаться в этом направлении если устроит заказчика.
Еще один момент. Как бы это все реализовать как экстеншн. То-есть, чтобы можно было инсталить на сайт как .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>
Работает на vBulletin® версия 3.8.1. Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot