Russian TYPO3 community

Russian TYPO3 community (http://forum.typo3.ru/index.php)
-   HTMLArea, RTE, tinymce_rte и другие визуальные редакторы (http://forum.typo3.ru/forumdisplay.php?f=24)
-   -   tinyRTE vs tag <script> (http://forum.typo3.ru/showthread.php?t=8915)

GAZok 27.09.2010 18:20

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;"

Спасибо за помощь!

void 28.09.2010 01:30

JS вставлять в RTE? Оригинально.

GAZok 28.09.2010 14:33

Задание заключается в том, чтобы дописать дополнительный плагин для 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();

void 28.09.2010 16:03

А modify вы каким образом собираетесь реализовать в этом случае? Я бы лично загнал все вот эти параметры графика в один из атрибутов вставляемого тега и парсил бы уже либо на стороне пользователя уже js-ом, либо во время преобразования текста из того, что лежит в базе в то, что будет показано пользователю. А может быть, все эти паметры вообще хранить в базе данных, а вставлять просто пустой див с параметром class="chart char_id_1".
Понятно, что если функции модификации графика у вас нет, то можно и JS в RTE вставлять. Но тут проблема безопасности - как только вы разрешаете тег <script> в RTE, любой редактор может творить с вашим сайтом всё что хочет.

GAZok 28.09.2010 16:32

Цитата:

Сообщение от void (Сообщение 29032)
А может быть, все эти паметры вообще хранить в базе данных, а вставлять просто пустой див с параметром class="chart char_id_1".

Хорошо, это в принципе довольно таки хороший вариант. Попробую двигаться в этом направлении если устроит заказчика.

Еще один момент. Как бы это все реализовать как экстеншн. То-есть, чтобы можно было инсталить на сайт как .t3x. Я так понимаю он должен обновить сорсы tinyRTE + добавить таблицы для хранения графиков + как-то срабатывать в фронт-енде чтобы отображать эти графики из БД. Реально ли это?

void 29.09.2010 00:09

Я давно не лазил в код TYPO3 и тем более tinyrte, но:
1) вам нужно создать таблицы. читайте мануалы по созданию расширений и ext_tables.php
2) любой вменяемый визуальный редактор должен иметь хуки для внедрения в себя плагинов в виде кнопок. То есть необходимости лазить куда-то там и править исходники tinyrte быть не должно
3) срабатывать во фронтэнде конечно можно, надо воспользоваться одним из хуков TYPO3.

GAZok 12.10.2010 17:14

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="" />

как бы так его подправить?

void 12.10.2010 22:28

Смотреть как обрабатывается <img>


Часовой пояс GMT +4, время: 09:55.

Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot