Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community |
16.03.2006, 10:59 | #1 |
Senior Member
|
Как в RTE HtmlArea добавить свою кнопку?
Доброго времени суток!
У меня возник вопрос, вроде бы не сложный, как мне показалось по-началу. На сайте, за который я отвечаю, используется простенькая CMS и внедренный мною в нее визуальный редактор (HtmlArea) (благо это оказалось совсем несложно в то время - тогда HtmlArea был простеньким). В HtmlArea я внедрил пару новых кнопок (вызов модальных окон, простенький JavaScript, upload документов перед закрытием модального окна, возврат в HtmlArea c изменением bodytext без перегрузки). Почти все это оказалось ненужным в RTE HtmlArea, так как есть прекрасные вставки "волшебных картинок", вставки ссылок. Но только почти... Как я считаю в RTE HtmlArea отсутствуют очень полезные (и очень простые) вещи такие, как: 1) Вставка ссылок на файлы, с их одновременным upload. Аналог в RTE HtmlArea - вставка картинок, но почему-то это не сделали во вставке ссылок на файлы. Приходится идти в "Список файлов" и там upload-ить файл на сервер. 2) Вставка ссылок на страницы со своего сайта в режиме броузера. То есть во фрейме открываешь свой сайт и ищешь ту страницу куда надо сослаться. 3) Кроме того у нас повелось вставлять в bodytext боковые висячие таблицы как например на gazeta.ru. Это реализуется тоже очень просто через javascript. Для задания ширины таблицы там используется ActiveX-компонент Slider. Так вот все это теперь для наших пользователей стало настолько родным, что, я чувствую, отсутствие на TYPO3 RTE HtmlArea будет для них несколько болезненным. Хотелось бы узнать - как внедрять в RTE HtmlArea свои кнопки? CustomTag для 3) не подошло. Вопрос только о кнопках. Чтобы кнопка только появилась. Остальное дело техники. Меняя скрипт htmlarea.js, кнопка не появляется. Последний раз редактировалось Дылгеров Ц.В.; 16.03.2006 в 11:48 |
16.03.2006, 11:56 | #2 | |
Administrator
|
Цитата:
Я делал патч для диалога вставки ссылок (правда для BackEnd). /typo3/browse_links.php for file upload in link wizard Там всего 30 строк кода - и не понятно, почему этого не сделали. Я видел обсуждения этого вопроса - может в 4.0 уже есть эта функция Последний раз редактировалось Valery Romanchev; 16.03.2006 в 12:16 |
|
16.03.2006, 13:25 | #3 |
Senior Member
|
Заменил файл browse_links.php - нет изменений
Судя по всему надо менять TS User options.uploadFieldsInTopOfEB = 1 А в TS Page Setup нельзя то же проделать? |
16.03.2006, 13:37 | #4 | ||
Administrator
|
Цитата:
я его как пример привел. В RTE наверняка другой диалог используется - но код должен быть похожий. Цитата:
сейчас на эту задачу нет времени - но возможно через неделю-две сам буду эту тему копать. |
||
19.03.2006, 03:00 | #5 |
Administrator
|
options.uploadFieldsInTopOfEB=1 в User TS config
Правда, папки все равно нельзя создавать. Но может быть - это сделают: http://bugs.typo3.org/view.php?id=2915 |
19.03.2006, 14:07 | #6 |
Administrator
|
папки создавать можно, если сделать патч
I check: create folder in Element Brauser can be added by 1 line of code near 1234 in /typo3conf/ext/rtehtmlarea/mod3/browse_links.php PHP код:
|
24.03.2006, 10:30 | #7 |
Senior Member
|
разобрался как добавлять кнопку - решение не назовешь красивым - но могу рассказать
Последний раз редактировалось Дылгеров Ц.В.; 24.03.2006 в 10:33 |
24.03.2006, 13:33 | #8 | |
Senior Member
|
Цитата:
|
|
27.03.2006, 10:37 | #9 | |
Senior Member
|
Цитата:
Затем заходите в каталог /typo3conf/ext/rtehtmlarea/htmlarea/plugins и копируете с надлежащими правами плугин попроще - я выбрал InsertSmiley. В результате в этом каталоге возник каталог InsertPodrobno - назовем его так (Вставить Подробность (по аналогии с http://gazeta.ru)). Обратите внимание на то что в названии этого каталога есть большие буквы. Внутри этого каталога не удаляйте пока ничего. Переименовываем insert-smiley.js в insert-podrobno-compressed.js (по умолчанию используются сжатые скрипты - нам же нужны для правки несжатые). В нем везде заменяем InsertSmiley на InsertPodrobno. Кроме названия рисунка ed_smiley.gif. В подкаталоге popups переименовываем insertsmiley.html в insertpodrobno.html Внутри locallang.php оставляем: $LOCAL_LANG = Array ( 'default' => Array ( 'Insert Podrobno' => 'Insert Podrobno', 'Smiley' => 'Smiley', 'Cancel' => 'Cancel', ), 'ru' => Array ( 'Insert Podrobno' => 'Вставить подробность', 'Smiley' => 'Смайлик', 'Cancel' => 'Отмена', ), ); В /typo3conf/ext/rtehtmlarea/class.tx_rtehtmlarea_base.php добавляем элементы типа "InsertPodrobno" или "insertpodrobno" в массивы и строки: $defaultToolbarOrder, $conf_toolbar_convert, $pluginButton, $pluginList, $this->defaultToolbarOrder, действуя по обстоятельствам также меняем conf-файлы - ext_conf_template.txt и ext_localconf.php - добавляете название InsertPlugin в HTMLAreaPluginList Заходим в Менеджер расширений и там добавляем в htmlArea RTE в List of htmlArea plugins в конец InsertPodrobno В TS ставим на всякий случай RTE.config.tt_news.bodytext { showButtons = insertpodrobno } Обновляем кэш typo3conf Как видите все очень просто. В конце панели инструментов - можете посмотреть - возникла рожица. Далее уже работаете с JavaScript. Например в файле insert-podrobno-compressed.js исправляете InsertPodrobno.setTagHandler = function(instance) { return (function(param) { if(param && typeof(param.filePodrobno) != "undefined") { instance.editor.focusEditor(); instance.editor.insertHTML(param.filePodrobno); } }); }; а в файле popups/insertpodrobno.html добавить в конец <iframe src='podrobn1.html' name='podrobno'></iframe> <button onclick='aaa()'></button> <script>function aaa() { var params = {}; params.filePodrobno = podrobno.document.body.innerHTML; __dlg_close(params); return false; }</script> то при нажатии на кнопку в текст визуального редактора вставится содержимое файла podrobno1.html в каталоге popups У меня же есть еще выпадающий список для выбора этих podrobnХ.html файлов Последний раз редактировалось Дылгеров Ц.В.; 27.03.2006 в 12:49 |
|
17.04.2008, 20:21 | #10 |
Новенький
Регистрация: 17.04.2008
Сообщений: 1
|
я проделал все это с tinyRTE ru 1.0.2, просто добавил строки из под Patch в mod1/browe_link.php, НО еще пришлось файл tce_file.php копировать из папки typo3 и создание папок так и не заработало...
|