Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Тематические форумы > HTMLArea, RTE, tinymce_rte и другие визуальные редакторы

Ответ
 
Опции темы Опции просмотра
Старый 16.03.2006, 10:59   #1
Дылгеров Ц.В.
Senior Member
 
Регистрация: 14.11.2005
Адрес: Улан-Удэ
Сообщений: 158
Отправить сообщение для Дылгеров Ц.В. с помощью ICQ
По умолчанию Как в 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
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

Цитата:
1) Вставка ссылок на файлы, с их одновременным upload. Аналог в RTE HtmlArea - вставка картинок, но почему-то это не сделали во вставке ссылок на файлы. Приходится идти в "Список файлов" и там upload-ить файл на сервер.
Вот с этим я уже сталкивался - правда по другому поводу.

Я делал патч для диалога вставки ссылок (правда для BackEnd).
/typo3/browse_links.php for file upload in link wizard

Там всего 30 строк кода - и не понятно, почему этого не сделали.
Я видел обсуждения этого вопроса - может в 4.0 уже есть эта функция
Вложения
Тип файла: zip browse_links.zip (18.3 Кб, 10 просмотров)
__________________
Веб-студия ТТЛАБ
www.ttlab.ru

Последний раз редактировалось Valery Romanchev; 16.03.2006 в 12:16
Valery Romanchev вне форума   Ответить с цитированием
Старый 16.03.2006, 13:25   #3
Дылгеров Ц.В.
Senior Member
 
Регистрация: 14.11.2005
Адрес: Улан-Удэ
Сообщений: 158
Отправить сообщение для Дылгеров Ц.В. с помощью ICQ
По умолчанию

Заменил файл browse_links.php - нет изменений

Судя по всему надо менять TS User options.uploadFieldsInTopOfEB = 1

А в TS Page Setup нельзя то же проделать?
Дылгеров Ц.В. вне форума   Ответить с цитированием
Старый 16.03.2006, 13:37   #4
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

Цитата:
Заменил файл browse_links.php - нет изменений
да - этот файл - для BackEnd.
я его как пример привел.
В RTE наверняка другой диалог используется - но код должен быть похожий.


Цитата:
Судя по всему надо менять TS User options.uploadFieldsInTopOfEB = 1
А в TS Page Setup нельзя то же проделать?
на вскидку - не скажу.
сейчас на эту задачу нет времени - но возможно через неделю-две сам буду эту тему копать.
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 19.03.2006, 03:00   #5
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

options.uploadFieldsInTopOfEB=1 в User TS config
Правда, папки все равно нельзя создавать.
Но может быть - это сделают:

http://bugs.typo3.org/view.php?id=2915
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 19.03.2006, 14:07   #6
Valery Romanchev
Administrator
 
Аватар для Valery Romanchev
 
Регистрация: 23.08.2003
Адрес: Moscow, Russia
Сообщений: 1,926
Отправить сообщение для Valery Romanchev с помощью Skype™
По умолчанию

папки создавать можно, если сделать патч
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 код:
if ($BE_USER->isAdmin() || $BE_USER->getTSConfigVal('options.createFoldersInEB'))    $content.=$createFolder
__________________
Веб-студия ТТЛАБ
www.ttlab.ru
Valery Romanchev вне форума   Ответить с цитированием
Старый 24.03.2006, 10:30   #7
Дылгеров Ц.В.
Senior Member
 
Регистрация: 14.11.2005
Адрес: Улан-Удэ
Сообщений: 158
Отправить сообщение для Дылгеров Ц.В. с помощью ICQ
По умолчанию

разобрался как добавлять кнопку - решение не назовешь красивым - но могу рассказать

Последний раз редактировалось Дылгеров Ц.В.; 24.03.2006 в 10:33
Дылгеров Ц.В. вне форума   Ответить с цитированием
Старый 24.03.2006, 13:33   #8
Pavel Antonov
Senior Member
 
Аватар для Pavel Antonov
 
Регистрация: 01.10.2004
Адрес: Россия, Москва
Сообщений: 1,204
Отправить сообщение для Pavel Antonov с помощью ICQ
По умолчанию

Цитата:
Сообщение от Дылгеров Ц.В.
разобрался как добавлять кнопку - решение не назовешь красивым - но могу рассказать
Конечно! Будет полезно...
__________________
Павел Антонов
Rich Media Development Ltd.
Блог: http://codeline.richmd.ru/
Pavel Antonov вне форума   Ответить с цитированием
Старый 27.03.2006, 10:37   #9
Дылгеров Ц.В.
Senior Member
 
Регистрация: 14.11.2005
Адрес: Улан-Удэ
Сообщений: 158
Отправить сообщение для Дылгеров Ц.В. с помощью ICQ
По умолчанию

Цитата:
Сообщение от Pavel Antonov
Конечно! Будет полезно...
Для создания кнопки в HTMLArea необходимо прежде всего конечно установить сам RTE HTMLArea.

Затем заходите в каталог /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
Antozzi
Новенький
 
Регистрация: 17.04.2008
Сообщений: 1
По умолчанию

я проделал все это с tinyRTE ru 1.0.2, просто добавил строки из под Patch в mod1/browe_link.php, НО еще пришлось файл tce_file.php копировать из папки typo3 и создание папок так и не заработало...
Antozzi вне форума   Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


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


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

Хостинг и техническая поддержка: TYPO3 Лаборатория